作者OPliao (OPman)
看板C_and_CPP
標題[問題] MFC Dialog控制view顯示圖片
時間Fri Feb 23 10:24:42 2018
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VS2017
問題(Question):
各位好
我在一個view中放了button與picture control
透過點擊按鈕可顯示bitmap圖片 程式碼如下圖
https://imgur.com/a/JWW2W
現在我要透過Dialog的按鈕讓同個view顯示圖片
試過在雙擊按鈕自動產生的BN_CLICKE事件中加入程式 但有錯誤訊息
https://imgur.com/a/NUin1
也試過對按鈕加入event handler
我在class list選該view
在function中試著跳出一個messagebox 不過卻沒反應
https://imgur.com/a/mlTFM
(也試過把顯示圖片程式碼放上去 也沒反應)
是不是少了什麼步驟?
請各位前輩指導
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.39.226.12
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1519352685.A.69F.html
1F:推 suwako: 控件ID要換掉 不能用IDC_STATIC 02/23 13:36
原來要換ID, 不過改了之後還是一樣的情況, view的button沒問題, Dialog依舊無法, 或者需要宣告什麼嗎?
2F:→ suwako: 你現在是寫成怎樣? 02/23 14:41
我把picture control的ID改成IDC_PICTURE來使用
3F:→ suwako: 那你說的Dialog是怎麼寫?我看不到你的code,我不知道你是 02/23 15:10
4F:→ suwako: 怎樣的問題阿 02/23 15:10
我在dialog button的code與第一張圖片相同(顯示bitmap的程式碼)
5F:→ suwako: 你還是把code貼出來吧,我沒有水晶球 02/23 15:47
CODE:
void CDialogTEST1::OnBnClickedButton2()
{
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CStatic *p = (CStatic *)GetDlgItem(IDC_PICTURE);
p->ModifyStyle(0xf, SS_BITMAP | SS_CENTERIMAGE);
p->SetBitmap(bitmap);
}
※ 編輯: OPliao (202.39.226.12), 02/23/2018 15:50:38
6F:→ suwako: 會不會是你event連結有問題? 02/23 17:17
7F:→ F04E: 你是要讓view顯示圖片?如果是的話,GetDlgItem取到的指標是 02/26 17:40
8F:→ F04E: dialog上的control,而不是view上的 02/26 17:41
9F:→ F04E: 應該要把dialog的爸爸(或媽媽)設成view並在view上加一個 02/26 17:44
10F:→ F04E: 秀圖函數,然後在dialog的bn_click event裡透過爸爸(或媽媽 02/26 17:46
11F:→ F04E: )的pointer呼叫秀圖函數,以上。 02/26 17:47