最近又要開始學(xué)習(xí)MFC了,界面設(shè)計(jì)真是讓人蛋疼啊,現(xiàn)在發(fā)現(xiàn)搞MFC的就是很復(fù)雜,門檻還是很高啊,雖然可能很多人說技術(shù)含量不高,不高鄙人覺得要是把這些機(jī)制啥的都搞懂了就應(yīng)該是牛人了。無奈畢設(shè)要用,也沒辦法,而且還是使用的老版的VC6.0,很多新的控件和類都不支持,慢慢開始搞吧。
參考資料:1. http://blog.csdn.net/huangye010/archive/2008/12/05/3451574.aspx(看了一下,后面的完全沒懂怎么冒出個(gè)新的類)
2.http://topic.csdn.net/u/20080511/10/64586f33-9758-4312-8e32-e8ebd052cd3e.html(試了幾次成功了)
其實(shí)還是比較簡(jiǎn)單的,就是加入代碼:
CString strPath("C:\\Users\\liuchang\\Desktop\\a\\001\\res\\a.bmp");
HBITMAP hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),strPath, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
m_picture.SetBitmap(hBmp); //MARK,這里在ClassVIzard中添加控制代碼,即將m_picture和CStatic類結(jié)合起來

或者代碼:

/**////MARK:下面的這兩行代碼是正確的,另外在前面還有一段初始化的代碼
HBITMAP hBmp = (HBITMAP)m_bitmap.GetSafeHandle();
m_picture.SetBitmap(hBmp); //m_static為Pic控件關(guān)聯(lián)的變量
發(fā)一個(gè)低級(jí)的錯(cuò)誤:第一個(gè)strPath的時(shí)候路徑寫的是相對(duì)路徑,導(dǎo)致圖片不能顯示,換成了絕對(duì)路徑ok。(論壇上面的人的代碼中都是相對(duì)路徑,我懷疑是不是VC6不如VS牛逼,認(rèn)不出來?)
原因不明,測(cè)試多次依然如此,試過的相對(duì)路徑有:
\\res\\a.bmp,
\\001\\res\\a.bmp,
\\a\\001\\res\\a.bmp; (不解,求高手指導(dǎo))。
注記:省略了類型的交代,以及初始化的信息和相關(guān)的ClassWizard的設(shè)定,在上面的參考帖子中已經(jīng)有敘述了,不重復(fù),你懂的。。。
小水文一篇,記錄下一個(gè)下午的收獲。
posted on 2011-04-18 16:15
deercoder 閱讀(1402)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
MFC程序設(shè)計(jì)入門