我是Win32 / Windows API(非MFC)的新手,我正在尝试更改静态文本控件的文本颜色。它已被黑色绘制到屏幕上,但我想使用Windows Color Chooser对话框将其更改为另一种颜色,该对话框在单击按钮时打开。这可能吗?
对于该按钮,点击时会处理WM_COMMAND
消息。到目前为止,我写道:
CHOOSECOLOR ccColour;
ccColour.lStructSize = sizeof(ccColour);
ccColour.hwndOwner = hWnd;
ccColour.rgbResult = crLabelTextColour;
ccColour.Flags = CC_FULLOPEN | CC_RGBINIT;
if (ChooseColor(&ccColour) == TRUE)
{
// crLabelTextColour is a COLORREF global variable assigned on loading the program
crLabelTextColour = ccColour.rgbResult;
}
然而,这段代码在if
语句中出现未处理的异常,我不知道为什么!其他例子似乎写这样的代码。
答案 0 :(得分:1)
ChooseColor()崩溃,因为您没有完全初始化CHOOSECOLOR结构。您只设置3个字段,其余将包含垃圾。您需要对所有内容进行零初始化,操作简单:
CHOOSECOLOR ccColour = {0};