日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

主窗口给按钮控件发送消息 BN_CLICKED和BN_SETFOCUS和BN_KILLFOUCS

發(fā)布時間:2023/12/8 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主窗口给按钮控件发送消息 BN_CLICKED和BN_SETFOCUS和BN_KILLFOUCS 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

先說明一下,按鈕控件的消息有很多種,下面的列表是按鈕發(fā)送的消息,其中用的比較多是BN_CLICKED和BN_SETFOCUS和BN_KILLFOUCS

/** User Button Notification Codes*/ #define BN_CLICKED 0 #define BN_PAINT 1 #define BN_HILITE 2 #define BN_UNHILITE 3 #define BN_DISABLE 4 #define BN_DOUBLECLICKED 5 #if(WINVER >= 0x0400) #define BN_PUSHED BN_HILITE #define BN_UNPUSHED BN_UNHILITE #define BN_DBLCLK BN_DOUBLECLICKED #define BN_SETFOCUS 6 #define BN_KILLFOCUS 7 #endif /* WINVER >= 0x0400 */

下面的實例是說明

case BN_CLICKED:
//MessageBox(hWnd,TEXT(“按鈕1被按下”),TEXT(“測試”),MB_OK);
SendMessage(hWndEdit1,WM_CLEAR,0,0);
SendMessage(hWndEdit2,WM_CLEAR,0,0);
break;
case BN_SETFOCUS:
MessageBox(hWnd,TEXT(“按鈕1得到焦點”),TEXT(“測試”),MB_OK);
break;
case BN_KILLFOCUS:
MessageBox(hWnd,TEXT(“按鈕1失去焦點”),TEXT(“測試”),MB_OK);
break;
完整的例子如下:

#include <Windows.h> #include "resource.h"INT_PTR CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) {BOOL bRet = true;static HWND hWndEdit1 = NULL;static HWND hWndEdit2 = NULL;TCHAR pszBuffer[1024];switch(uMsg){case WM_CLOSE:EndDialog(hWnd,0);break;case WM_COMMAND:hWndEdit1 = GetDlgItem(hWnd,IDC_EDIT1);hWndEdit2 = GetDlgItem(hWnd,IDC_EDIT2);switch(LOWORD(wParam)){case IDC_BUTTON1:switch(HIWORD(wParam)){case BN_CLICKED://MessageBox(hWnd,TEXT("按鈕1被按下"),TEXT("測試"),MB_OK);SendMessage(hWndEdit1,WM_CLEAR,0,0);SendMessage(hWndEdit2,WM_CLEAR,0,0);break;case BN_SETFOCUS:MessageBox(hWnd,TEXT("按鈕1得到焦點"),TEXT("測試"),MB_OK);break;case BN_KILLFOCUS:MessageBox(hWnd,TEXT("按鈕1失去焦點"),TEXT("測試"),MB_OK);break;}break;case IDC_EDIT1:switch(HIWORD(wParam)){case EN_MAXTEXT:break;case EN_UPDATE:GetWindowText(hWndEdit1,pszBuffer,1024);SetWindowText(hWndEdit2,pszBuffer);break;}break;case IDC_BUTTON2:switch(HIWORD(wParam)){case BN_CLICKED:SendMessage(hWndEdit1,WM_COPY,0,0);break;}break;case IDC_BUTTON3:switch(HIWORD(wParam)){case BN_CLICKED:SendMessage(hWndEdit2,WM_PASTE,0,0);break;}break;case IDC_BUTTON4:GetWindowText(hWndEdit1,pszBuffer,1024);MessageBox(hWnd,pszBuffer,TEXT("測試"),MB_OK);break;case IDC_BUTTON5:SetWindowText(hWndEdit2,TEXT("單于大爺"));break;default:return DefWindowProc(hWnd,uMsg,wParam,lParam);}break;default:bRet = FALSE;return bRet;}return bRet; }int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {DialogBox(hInstance,MAKEINTRESOURCE(IDD_MAIN),NULL,DialogProc);return 0; }

總結(jié)

以上是生活随笔為你收集整理的主窗口给按钮控件发送消息 BN_CLICKED和BN_SETFOCUS和BN_KILLFOUCS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。