麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

MFC指示燈學習

2019-11-10 20:32:11
字體:
來源:轉載
供稿:網友

操作步驟

 1、在資源編輯的時候選中按鈕的 Owner draw 屬性,不需要選擇 Bitmap 屬性.       按鈕右鍵-->Styles-->Owner draw 2、在程序中定義一個CBitmapButton成員變量。        屬性添加變量,修改變量類型為CBitmapButton 3、在資源視圖中添加資源Bitmap(照片格式要為bmp) 4、初始化OnInitDialog函數中添加如下代碼
BOOL b = m_btbutton.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP3);   //載入照片m_btbutton.SizeToContent();  //使按鈕適應圖片大小  5、重載PReTranslateMessage函數,使得按鍵控制顯示照片
BOOL CledDlg::PreTranslateMessage(MSG *pMsg){if (pMsg->message==WM_CHAR){   switch (pMsg->wParam)   {   case 'a':    if (::GetKeyState('A')<0)    {	m_btbutton.LoadBitmaps(IDB_BITMAP3);   	m_btbutton.Invalidate();//重新繪制調用者本身     //AfxMessageBox(_T("ss"));    }    break;   case 'd':    if (::GetKeyState('D')<0)    {	m_btButton2.LoadBitmaps(IDB_BITMAP4);   	m_btButton2.Invalidate();     //AfxMessageBox(_T("ss"));    }    break;   }}    return CDialog::PreTranslateMessage(pMsg);}運行之后:按下‘a’和‘d’后實現過程中解決問題:1.照片格式問題。之前png格式編譯總是不通過,選用bmp格式照片解決問題。2.MSG類typedef struct tagMSG {    HWND        hwnd;    UINT        message;    WPARAM      wParam;    LPARAM      lParam;    DWord       time;    POINT       pt;} MSG
       第一個成員變量hwnd表示消息所屬的窗口。我們通常開發的程序都是窗口應用程序,一個消息一般都是與某個窗口相關聯的。例如,在某個活動窗口中按下鼠標左鍵,產生的按鍵消息就是發給該窗口的。在Windows程序中,用HWND類型的變量來標識窗口。  第二個成員變量message指定了消息的標識符。在Windows中,消息是由一個數值來表示的,不同的消息對應不同的數值。但是由于數值不便于記憶,所以Windows將消息對應的數值定義為WM_XXX宏(WM是Window Message的縮寫)的形式,XXX對應某種消息的英文拼寫的大寫形式。例如,鼠標左鍵按下消息是WM_LBUTTONDOWN,鍵盤按下消息是WM_KEYDOWN,字符消息是WM_CHAR,等等。在程序中我們通常都是以WM_XXX宏的形式來使用消息的。  提示:如果想知道WM_XXX消息對應的具體數值,可以在Visual C++開發環境中選中WM_XXX,然后單擊鼠標右鍵,在彈出菜單中選擇goto definition,即可看到該宏的具體定義。跟蹤或查看某個變量的定義,都可以使用這個方法。  第三、第四個成員變量wParam和lParam,用于指定消息的附加信息。例如,當我們收到一個字符消息的時候,message成員變量的值就是WM_CHAR,但用戶到底輸入的是什么字符,那么就由wParam和lParam來說明。wParam、lParam表示的信息隨消息的不同而不同。如果想知道這兩個成員變量具體表示的信息,可以在MSDN中關于某個具體消息的說明文檔查看到。讀者可以在VC++的開發環境中通過goto definition查看一下WPARAM和LPARAM這兩種類型的定義,可以發現這兩種類型實際上就是unsigned int和long。  最后兩個變量分別表示消息投遞到消息隊列中的時間和鼠標的當前位置。 3.GetKeyState函數GetKeyState是指定虛擬鍵的狀態的一個函數。該函數檢取指定虛擬鍵的狀態。該狀態指定此鍵是UP狀態,DOWN狀態,還是被觸發的(開關每次按下此鍵時進行切換)。例子:::GetKeyState(VK_SHIFT) > 0 沒按下::GetKeyState(VK_SHIFT) < 0被按下返回值給出了給定虛擬鍵的狀態,狀態如下:若高序位為1,則鍵處于DOWN狀態,否則為UP狀態。
若低序位為1,則鍵被觸發。例如CAPS LOCK鍵,被找開時將被觸發。若低序位置為0,則鍵被關閉,且不被觸發。觸發鍵在鍵盤上的指示燈,當鍵被觸發時即亮,鍵不被觸發時即滅。備注:當給定線程從它的消息隊列中讀鍵消息時,該函數返回的鍵狀態發生改變。該狀態并不反映與硬件相關的中斷級的狀態。使用GetAsyncKeyState可獲取這一信息。4.Invalidate();//重新繪制調用者本身參考文檔:http://blog.csdn.net/akof1314/article/details/4951836/http://www.cnblogs.com/QQingmu/archive/2007/09/06/884840.htmlhttp://www.cnblogs.com/huipengkankan/archive/2011/09/21/2184479.htmlhttp://blog.sina.com.cn/s/blog_a5b3ed560101bwgm.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美亚洲啪啪 | 亚洲综合视频在线播放 | 在线a亚洲视频播放在线观看 | 看片一区 | 在线天堂资源 | 在线中文字幕观看 | av亚洲在线观看 | 精品一区二区三区中文字幕 | 国产精品一品二区三区四区18 | 国产色视频一区 | 麻豆视频在线免费观看 | 久久成人午夜视频 | 中国字幕av| 国产精品成人亚洲一区二区 | 日本aⅴ在线 | 亚洲第一精品在线 | 日韩视频不卡 | 久久99精品久久久久久秒播放器 | 一级免费在线视频 | 九九热在线精品视频 | 成人在线视频一区 | 看黄在线 | 神马顶级推理片免费看 | 草草视频在线播放 | 福利免费在线观看 | 久久精品a一级国产免视看成人 | 久久久久久久久久久久久久久伊免 | 一区二区三高清 | 黄色毛片a级 | 99爱在线免费观看 | 亚洲免费视| 91久久99热青草国产 | 国产欧美精品一区二区三区四区 | 欧美日本中文字幕 | 亚洲二区免费 | www.99久久久 | 91 久久| 久久九九热re6这里有精品 | 精品久久久久99 | 日本欧美一区 | omofun 动漫在线观看 |