C++ 如何在win32 c++;应用
。 我是新的C++,并试图获得的价值,单选按钮用于在我的应用程序中使用。 但我无法获得单选按钮的正确状态。 以下是我编写的代码:C++ 如何在win32 c++;应用,c++,winapi,win32com,C++,Winapi,Win32com,。 我是新的C++,并试图获得的价值,单选按钮用于在我的应用程序中使用。 但我无法获得单选按钮的正确状态。 以下是我编写的代码: hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Decimal Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 80, 150, 30, hWnd, NULL, NULL, NULL); hDecRB = Creat
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Decimal Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 80, 150, 30, hWnd, NULL, NULL, NULL);
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Binary Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 120, 150, 30, hWnd, NULL, NULL, NULL);
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Octal Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 160, 150, 30, hWnd, NULL, NULL, NULL);
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Hex Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 200, 150, 30, hWnd, NULL, NULL, NULL);
if(BM_GETCHECK==BST_CHECKED)
{
flag=Button_GetState(hBinRB);
MessageBox(NULL,"CHECKED","sachin",MB_OK);
}
else
{
MessageBox(NULL,"Binary not checked","sachin",MB_OK);
MessageBox(NULL,(LPCSTR)flag,"sachin",MB_OK);
}
但是,当我点击我的dedecated按钮来检查单选按钮状态时,它会显示我在选中和未选中条件下都未选中。。
请帮我摆脱这个
if(BM_GETCHECK==BST_CHECKED)
此条件的计算结果将始终为false。这就是它告诉您无论按钮状态如何,按钮都未选中的原因
在您的情况下,您可能需要以下内容:
if(Button_GetState(hDecRB) == BST_CHECKED) {
MessageBox(NULL,"CHECKED","sachin",MB_OK);
}
else {
MessageBox(NULL,"Binary not checked","sachin",MB_OK);
MessageBox(NULL,(LPCSTR)flag,"sachin",MB_OK);
}
您还需要将每个按钮存储在不同的HWND中。您正在为每个文件使用hDecRB,每次重新分配时都会覆盖该文件
如果按钮是作为对话框模板(对话框资源)的一部分创建的,则可以使用
if (IsDlgButtonChecked(hDlg, buttonID) == BST_CHECKED)
使用对话框模板比像代码那样手动创建按钮窗口要容易得多…如果()语句比较两个常量值,它将始终为false。您当然希望实际使用标志值,if(已选中标志和BST)
。请考虑使用C++类库来帮助您编写这种代码,如MFC、Qt、WxWIDGET,如果您想使用原始WiAPI,etc. Petzold是必不可少的阅读工具。