在VC中怎样禁用字体对话框中的颜色功能,下划线和删除线功能依然保留?

十分感谢各位,回答得好我将再送50分。... 十分感谢各位,回答得好我将再送50分。 展开
 我来答
悠然小调
2007-01-31 · TA获得超过379个赞
知道小有建树答主
回答量:493
采纳率:66%
帮助的人:249万
展开全部
临时给你写了一个,处理方法比较特殊:

UINT CALLBACK CFHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
switch(uiMsg)
{
case WM_INITDIALOG:
{
HWND hColorCombo = ::FindWindowEx(hdlg, NULL, "ComboBox", NULL);
while(hColorCombo)
{
char szText[MAX_PATH] = {0};
GetWindowText(hColorCombo, szText, MAX_PATH);
if(strstr(szText, "黑色") != 0)
{
ShowWindow(hColorCombo, SW_HIDE);
break;
}
hColorCombo = ::FindWindowEx(hdlg, hColorCombo, "ComboBox", NULL);
}

HWND hColorStatic = ::FindWindowEx(hdlg, NULL, "Static", NULL);
while(hColorStatic)
{
char szText[MAX_PATH] = {0};
GetWindowText(hColorStatic, szText, MAX_PATH);
if(strstr(szText, "颜色") != 0)
{
ShowWindow(hColorStatic, SW_HIDE);
break;
}
hColorStatic = ::FindWindowEx(hdlg, hColorStatic, "Static", NULL);
}
}
break;
}
return 0;
}

void ShowFontDlg()
{
LOGFONT lf = {0};
CHOOSEFONT cf = {0};
cf.lStructSize = sizeof(CHOOSEFONT);
cf.hwndOwner = m_hWnd;
cf.lpLogFont = &lf;
cf.Flags = CF_SCREENFONTS | CF_EFFECTS | CF_ENABLEHOOK;
cf.lpfnHook = CFHookProc;

ChooseFont(&cf);
}

补充一下,直接调用 ShowFontDlg 就可以看到效果了,在我机器上可以看到效果,其他机器没有测试过,呵呵。vc6 + xp sp2
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式