Win32 GetWindowLong函數實例Demo

獲取和輸出代碼;

                hdc=GetDC(hwnd);
				ret=GetWindowLong(hwnd,GWL_STYLE);
				wsprintf(szBuffer, "窗口樣式:%d",ret);
				TextOut(hdc,100,50,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(hwnd,GWL_EXSTYLE);
				wsprintf(szBuffer, "擴展窗口樣式:%d",ret);
				TextOut(hdc,100,70,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(hwnd,GWL_HINSTANCE);
				wsprintf(szBuffer, "實例句柄:0x%x",ret);
				TextOut(hdc,100,90,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(hwnd,GWL_HWNDPARENT);
				wsprintf(szBuffer, "所有者窗口句柄:0x%x",ret);
				TextOut(hdc,100,110,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(hwnd,GWL_ID);
				wsprintf(szBuffer, "窗口ID:%d",ret);
				TextOut(hdc,100,130,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(hwnd,GWL_USERDATA);
				wsprintf(szBuffer, "用戶設置的32位數據:%d",ret);
				TextOut(hdc,100,150,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(hwnd,GWL_WNDPROC);
				wsprintf(szBuffer, "窗口過程地址:0x%x",ret);
				TextOut(hdc,100,170,szBuffer,lstrlen(szBuffer));
				
				//ret=GetWindowLong(edit1,GWL_STYLE);獲取不到 
				ret=GetWindowLong(GetDlgItem(hwnd,8),GWL_STYLE);
				wsprintf(szBuffer, "文本框風格:%d",ret);
				TextOut(hdc,100,190,szBuffer,lstrlen(szBuffer));
				ret=GetWindowLong(GetDlgItem(hwnd,8),GWL_ID);
				wsprintf(szBuffer, "文本框窗口ID:%d",ret);
				TextOut(hdc,100,210,szBuffer,lstrlen(szBuffer));	
				
				ret=GetWindowLong(GetDlgItem(hwnd,8),GWL_STYLE);	
				if(ret & ES_PASSWORD)
				{
    				//MessageBox(NULL,"這是一個密碼域",TEXT("獲取文本框風格"),0);
    				TextOut(hdc,100,230,"這是一個密碼域",14);
				}

文本框創建代碼;

edit1 = CreateWindow(TEXT("Edit"), TEXT("mima123456"), ES_PASSWORD|WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER|WS_EX_CLIENTEDGE , 
			20, 20, 130, 20, hwnd, (HMENU)8, hInst, NULL);

工程和其他代碼類似此;

https://blog.csdn.net/bcbobo21cn/article/details/106340762

在WM_CREATE消息裏創建文本框;增加ES_PASSWORD風格,用戶鍵入到字符將不可見;

GetWindowLong,第一個參數是要獲取的窗口句柄,第二個參數是要獲取的類別,返回值是獲取結果;

程序獲取本窗口的相關信息,創建的文本框的相關信息;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章