上一節學習了創建單選框,下面我們來在窗口上創建文本框,並進行點擊動作。
1,打開VC++6.0,點擊 文件->打開工作空間 選擇example1,點擊確定,打開工程。
2,添加代碼
首先增加定義全局變量
HWND button1,checkBox1,checkBox2,textBox1;
int checkBoxValve;
更改回調函數如下
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)//回調函數定義
{
int nTextLength;
TCHAR sztextC[1024];
switch(uMsg)
{
case WM_CREATE:
button1=CreateWindow("BUTTON","第一個按鍵",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_PUSHBUTTON,10,10,100,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//創建按鍵
checkBox1=CreateWindow("BUTTON","第一個復選框",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_AUTOCHECKBOX,10,50,150,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//創建復選框
checkBox2=CreateWindow("BUTTON","第二個復選框",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_AUTOCHECKBOX,10,100,150,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//創建復選框
radioBox1=CreateWindow("BUTTON","第一個單選框",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_RADIOBUTTON,10,150,150,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//創建單選框
radioBox2=CreateWindow("BUTTON","第二個單選框",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_RADIOBUTTON,10,200,150,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//創建單選框
textBox1=CreateWindow("EDIT","第一個文本框",WS_VISIBLE|WS_CHILD|WS_BORDER|ES_MULTILINE|ES_WANTRETURN,10,250,150,100,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//創建文本框
break;
case WM_COMMAND:
if((HWND)lParam==button1)//判斷消息是否來自按鍵
{
nTextLength=GetWindowTextLength(textBox1);//讀取edit長度
GetWindowText(textBox1,sztextC,nTextLength+1);//讀取edit text
MessageBox(NULL,sztextC,"提示",MB_OK);//彈出提示窗體
}
if(((HWND)lParam) == checkBox1)
{
checkBoxValve=(int)SendMessage(checkBox1,BM_GETCHECK,0,0);
if(checkBoxValve)
MessageBox(NULL,"復選框1被選擇","提示",MB_OK);//彈出提示窗體
else
MessageBox(NULL,"復選框1被取消選擇","提示",MB_OK);//彈出提示窗體
}
if(((HWND)lParam) == checkBox2)
{
checkBoxValve=(int)SendMessage(checkBox2,BM_GETCHECK,0,0);
if(checkBoxValve)
MessageBox(NULL,"復選框2被選擇","提示",MB_OK);//彈出提示窗體
else
MessageBox(NULL,"復選框2被取消選擇","提示",MB_OK);//彈出提示窗體
}
if(((HWND)lParam) == radioBox1)
{
SendMessage(radioBox1,BM_SETCHECK,1,0);
SendMessage(radioBox2,BM_SETCHECK,0,0);
MessageBox(NULL,"單選框1被選擇","提示",MB_OK);//彈出提示窗體
}
if(((HWND)lParam) == radioBox2)
{
SendMessage(radioBox1,BM_SETCHECK,0,0);
SendMessage(radioBox2,BM_SETCHECK,1,0);
MessageBox(NULL,"單選框2被選擇","提示",MB_OK);//彈出提示窗體
}
break;
case WM_DESTROY://關閉窗口是系統發送的消息
PostQuitMessage(0);//發送退出消息GetMessage收到消息后將return 0,主函數退出消息循環
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);//不處理的消息交給系統處理。
}
return 0;
}
3,編譯運行,按下按鍵試試,看看是否有響應