pep*_*epr 6 user-interface visual-studio-2010 visual-c++
我正在向C++应用程序添加一个新对话框(Visual Studio 2010).我无法摆脱默认情况下放置在白色选项卡上的复选框的灰色背景:

.rc文件中的相关文本如下:
IDD_ExportHTML DIALOGEX 164, 128, 292, 136
STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
LTEXT "statFileName0",102,9,9,59,8
LTEXT "statFileName",101,9,20,190,8
CONTROL "",150,"SysTabControl32",TCS_RAGGEDRIGHT,11,38,201,92
DEFPUSHBUTTON "btnOK",IDOK,241,97,45,15
PUSHBUTTON "btnCancel",IDCANCEL,241,115,45,15
CONTROL "chboxLines",106,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,71,135,12
CONTROL "chboxBackground",107,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,84,135,12
CONTROL "chboxPaging",108,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,98,135,12
END
Run Code Online (Sandbox Code Playgroud)
它在应用程序运行时的行为方式相同.我应该设置或告诉复选框他们是标签的子项?或者我该如何解决问题
感谢您的时间和经验,Petr
做这样的事情:
HBRUSH CYourDialogHere::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = (HBRUSH)m_brush;
CWnd *pCheckBox = GetDlgItem(IDC_CHECK1); // put ID of your checkbox here.
if (*pCheckBox == *pWnd)
{
pDC->SetBkColor(RGB(255, 0, 0));
}
else
hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
Run Code Online (Sandbox Code Playgroud)
更多信息在这里
我不知道您的C++技能有多少,但您还必须在项目的.h文件中添加一些行以包含此OnCtlColor函数以及对话框.cpp文件的消息映射中的一些更改.
| 归档时间: |
|
| 查看次数: |
1156 次 |
| 最近记录: |