Win32+API学习笔记:创建基本的窗口控件
創建一個標簽
CreateWindowEx(0,?"static",?"姓名:",
????????????????????????????????????????????WS_CHILD?|?WS_VISIBLE?|?SS_NOTIFY,
????????????????????????????????????????????12,?//?xpos
????????????????????????????????????????????414,?//?ypos
????????????????????????????????????????????90,?//width
????????????????????????????????????????????21,?//height
????????????????????????????????????????????hwnd_frame,?(HMENU)id_lbl_name,?g_hInstance,??NULL)?;
1.?如果一個Static控件帶上了SS_NOTIFY屬性,則會在父窗口里響應STN_CLICKED、STN_DBLCLK、STN_DISABLE?和STN_ENABLE四種消息。
?
2.?id_lbl_name?是一個整型數字,起到標識符的作用。
?
創建一個單行文本框
hwnd_t_name?=?CreateWindowEx(WS_EX_CLIENTEDGE,?"edit",?"這里可以輸入初始內容",
??????????????????????????????????????????WS_CHILD?|?WS_VISIBLE?|?ES_AUTOHSCROLL,
??????????????????????????????????????????100,???//?xpos
??????????????????????????????????????????410,??//?ypos
??????????????????????????????????????????461,?//width
??????????????????????????????????????????21,?//height
??????????????????????????????????????????hwnd_frame,?(HMENU)id_t_name,???g_hInstance,???NULL);
?
1.?加上?ES_AUTOHSCROLL?屬性,才能確保文本內容寬度超過文本框的寬度時,可以按鍵盤向右移動,達到顯示全部內容的目地。
?
2.?更新文本框內容
SetWindowText(hwnd_t_name,?"abcdefg");
?
3.?獲取文本框內容
char?name[1024];
GetWindowText(hwnd_t_name,?name1024);
創建一個按鈕
hwnd_b_source_folder?=??CreateWindowEx(0,?"button",?"選擇...",
???????????????????????????????????????????WS_CHILD?|?WS_VISIBLE,?//?|?WS_DISABLED
???????????????????????????????????????????571,?//?xpos
???????????????????????????????????????????8,?//?ypos
???????????????????????????????????????????96,?//width
???????????????????????????????????????????25,?//height
???????????????????????????????????????????hwnd_frame,?(HMENU)id_b_source_folder,?g_hInstance,??NULL)?;
?
創建一個復選框
hwnd_ck_quality?=?CreateWindowEx(0,?"button",?"高",
?????????????????????????????????????WS_CHILD?|?WS_VISIBLE?|?BS_AUTOCHECKBOX,
?????????????????????????????????????21,???//?xpos
?????????????????????????????????????128,??//?ypos
?????????????????????????????????????68,?//width
?????????????????????????????????????19,?//height
?????????????????????????????????????hwnd_frame,?(HMENU)?id_ck_quality,???g_hInstance,???NULL);
1.?其中?"button"?+?BS_AUTOCHECKBOX?表示為一個復選框
?
2.?判斷一個復選框是否選中
???IsDlgButtonChecked(hwnd_frame,?id_ck_quality)
?
?
創建一個下拉列表框
hwnd_c_image_quality?=?CreateWindowEx(0,?"combobox",?"Text",
??????????????????????????????????????????WS_CHILD?|?WS_VISIBLE?|??CBS_DROPDOWNLIST,
??????????????????????????????????????????300,???//?xpos
??????????????????????????????????????????69,??//?ypos
??????????????????????????????????????????130,?//width
??????????????????????????????????????????300,?//height
??????????????????????????????????????????hwnd_frame,?(HMENU)id_c_image_quality,???g_hInstance,???NULL);
1.?給?combobox?添加一項
void?combobox_add_item(HWND?hwnd_combobox,?char?*text)
{
????int?index?=?(int)SendMessage(hwnd_combobox,?CB_ADDSTRING,?-1,?(LPARAM)text);
????if(index?==?0)
????{
????????SendMessage(hwnd_combobox,?CB_SETCURSEL,?index,?0);
????}
}
?
2.?添加一項到下拉列表框
combobox_add_item(hwnd_c_image_quality,?"高");
combobox_add_item(hwnd_c_image_quality,?"中");
combobox_add_item(hwnd_c_image_quality,?"低");
?
3.?設置當前選擇的index
SendMessage(hwnd_c_image_quality,?CB_SETCURSEL,?1,?0);?
?
4.?獲取選擇的index
LRESULT??quanlity?=??SendMessage(GetDlgItem(hwnd_frame,?id_c_image_quality),?CB_GETCURSEL,?0,?0);
?
創建進度條
hwnd_progressbar?=??CreateWindowEx(0,?"msctls_progress32",?"",
???????????????????????????????????????WS_CHILD?|?WS_VISIBLE?,?//?|?WS_DISABLED
???????????????????????????????????????12,?//?xpos
???????????????????????????????????????451,?//?ypos
???????????????????????????????????????549,?//width
???????????????????????????????????????21,?//height
???????????????????????????????????????hwnd_frame,?(HMENU)id_progressbar,?g_hInstance,??NULL)?;
1.?初始化進度條的最小值和最大值
SendMessage(hwnd_progressbar,?PBM_SETRANGE,?0,?MAKELPARAM(0,?100));?
?
2.?更新進度
SendMessage(hwnd_progressbar,?PBM_SETPOS,?80,?0L);
?
3.?重置進度條位置為0
SendMessage(hwnd_progressbar,?PBM_SETPOS,?0,?0L);
?
?
?
創建一個WS_EX_TOOLWINDOW樣式的窗口
hwnd_log_frame?=?CreateWindowEx(
?????????????????????????WS_EX_TOOLWINDOW,???????????????????/*?Extended?possibilites?for?variation?*/??
?????????????????????????"CodeBlocksWindowsApp",?????????/*?Classname?*/
?????????????????????????"日志",???????/*?Title?Text?*/
?????????????????????????WS_SYSMENU?|?WS_SIZEBOX,?/*?default?window?*/
?????????????????????????CW_USEDEFAULT,???????/*?Windows?decides?the?position?*/
?????????????????????????CW_USEDEFAULT,???????/*?where?the?window?ends?up?on?the?screen?*/
?????????????????????????460,?????????????????/*?The?programs?width?*/
?????????????????????????168,?????????????????/*?and?height?in?pixels?*/
?????????????????????????hwnd_parent,????????/*?The?window?is?a?child-window?to?desktop?*/
?????????????????????????NULL,????????????????/*?No?menu?*/
?????????????????????????hThisInstance,???????/*?Program?Instance?handler?*/
?????????????????????????NULL?????????????????/*?No?Window?Creation?data?*/
?????????????????????);
?
WS_EX_TOOLWINDOW,帶有這個屬性的窗口有以下特點:
1.?不在任務欄顯示。
2.?不顯示在Alt+Tab的切換列表中。
3.?在任務管理器的窗口管理Tab中不顯示。
4.?標題欄沒有圖標,標題欄的高度很小,很特珠的一個窗口
?
創建一個無邊框的窗口
hwnd_ad_window?=?CreateWindowEx(
?????????????????????????0,???????????????????/*?Extended?possibilites?for?variation?*/
?????????????????????????"CodeBlocksWindowsApp",?????????/*?Classname?*/
?????????????????????????"ad_window",???????/*?Title?Text?*/
?????????????????????????WS_CLIPCHILDREN?|?WS_CLIPSIBLINGS?|?WS_POPUP,?/*?default?window?*/
?????????????????????????CW_USEDEFAULT,???????/*?Windows?decides?the?position?*/
?????????????????????????CW_USEDEFAULT,???????/*?where?the?window?ends?up?on?the?screen?*/
?????????????????????????400,?????????????????/*?The?programs?width?*/
?????????????????????????16,?????????????????/*?and?height?in?pixels?*/
?????????????????????????hwnd_parent,????????/*?The?window?is?a?child-window?to?desktop?*/
?????????????????????????NULL,????????????????/*?No?menu?*/
?????????????????????????hThisInstance,???????/*?Program?Instance?handler?*/
?????????????????????????NULL?????????????????/*?No?Window?Creation?data?*/
?????????????????????);
?
?
2012-09-13
轉載于:https://www.cnblogs.com/personnel/p/4584818.html
總結
以上是生活随笔為你收集整理的Win32+API学习笔记:创建基本的窗口控件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BZOJ 1588] [HNOI 20
- 下一篇: 《构建之法》--阅读(第13章-第17章