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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Win32+API学习笔记:创建基本的窗口控件

發布時間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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学习笔记:创建基本的窗口控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。