簡單的問題,我找不到我需要什麼,你如何使用CreateWindow函數使用代碼在win32中複選框,沒有可視化的c + +,沒有額外的幫助程序,只是windows.h?我想要一個簡單的例子,以及如何使用它?
我仍然在學習C++和win32,所以不瞭解大多數的東西,msdn也沒有給出太多的信息。如何使複選框在win32中?
0
A
回答
4
在CreateWindowEx()的參數中,類名稱應該是BUTTON,窗口樣式應該是BS_CHECKBOX。兩者都是Windows.h中定義的內置常量。
hWnd = CreateWindowEx(NULL,BUTTON,"Checkbox",BS_CHECKBOX,xPos,yPos,width,height,parent,NULL,NULL,NULL)
您會像處理來自其他窗口的消息一樣處理消息。
0
根據這個鏈接(http://www.cplusplus.com/forum/windows/40147/)
的代碼應該是
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
static char *title = TEXT("Check Box");
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg ;
WNDCLASS wc = {0};
wc.lpszClassName = TEXT("Check Box");
wc.hInstance = hInstance ;
wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
wc.lpfnWndProc = WndProc ;
wc.hCursor = LoadCursor(0, IDC_ARROW);
RegisterClass(&wc);
CreateWindow(wc.lpszClassName, title,
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
150, 150, 230, 150, 0, 0, hInstance, 0);
while(GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
{
CreateWindow(TEXT("button"), TEXT("Show Title"),
WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
20, 20, 185, 35,
hwnd, (HMENU) 1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
CheckDlgButton(hwnd, 1, BST_CHECKED);
break;
}
case WM_COMMAND:
{
BOOL checked = IsDlgButtonChecked(hwnd, 1);
if (checked) {
CheckDlgButton(hwnd, 1, BST_UNCHECKED);
SetWindowText(hwnd, TEXT(""));
} else {
CheckDlgButton(hwnd, 1, BST_CHECKED);
SetWindowText(hwnd, title);
}
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
在論壇中,他們聲稱該代碼用來創建幾個複選框,但稍加修改可以解決這個問題。
- 快樂編程!
相關問題
- 1. 如何在stimulsoft中使用複選框
- 2. 如何在Python中使用複選框
- 3. 如何在PHP中使用複選框?
- 4. 如何使複選框被選中?
- 5. 如何在OnItemClickListener()中選中複選框?
- 6. 如何在選中多個複選框後禁用複選框?
- 7. 3狀態複選框Win32運行時
- 8. C Win32 API:設置複選框狀態
- 9. 如何選中複選框?
- 10. 如何使複選框中的複選框?
- 11. 如何使用struts2在選擇框中添加複選框
- 12. 如何使用複選框
- 13. 如何使用複選框
- 14. 如何在複選框中放置一個複選框?
- 15. MVC - 如何獲取選中的複選框中的複選框
- 16. 如何在html-el上使用複選框:struts中的複選框
- 17. 如何使複選框列表中的框默認未選中?
- 18. 如何使用gridview中的複選框?
- 19. 如何使用jQuery中的複選框?
- 20. 如何使用開關在jQuery中選中複選框?
- 21. 如何在asp.net mvc中設置我的複選框?我使用複選框還是複選框?
- 22. 如何檢查4複選框中的任何2複選框?
- 23. EXTJS 5:如何在點擊網格中的複選框時選中複選框
- 24. 如何在硒中選擇複選框中的複選框one-by-one?
- 25. ASP.NET:GridView中的複選框列:如何在Page_Load中選擇一個複選框
- 26. 如何在選擇單個複選框時選中所有複選框
- 27. 如何選擇未選中複選框
- 28. 如何使編程選擇複選框?
- 29. 如何使用django複選框顯示覆選框列表?
- 30. 如何在嵌套複選框結構中選中父複選框時檢查所有複選框?
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775951(v=vs.85).aspx – cha
通過閱讀文檔。 –
而不是將問題的答案編輯爲不符合網站準則的問題,您最好花些時間仔細閱讀http://stackoverflow.com/help/how-to-ask。如果你在中途發佈了非工作代碼,這將不會脫離主題,也不會被關閉。 –