在MFC中怎样改变对话框上Button的形状和颜色,Edit框里的颜色。静态文本的字体颜色。
麻烦说得具体一点啊,易懂的那种.....
麻烦说得具体一点啊,易懂的那种.....
解决方案 »
- 上次图片没怎么发成功,这次再麻烦高手来看看
- 1.VC写了一个导出类的DLL 2.用c++BUILDER调用它出错
- 关于word宏的问题。想录制鼠标拖动表格的宏该怎么实现啊?键盘没有办法操作
- 想实现控制台服务器程序,大家有什么想法
- 求助:如何释放这个动态数组?
- 哪个api函数可以实现这样的效果:点击应用程序的最小化窗口,该程序即变为非活动进程,程序所占内存立即变小。
- 制作打包程序installshield express 5,如何将sql server2000的数据库文件.mdf .ldf拷贝到指定目录,并附加数据库。还情大家帮忙!感激不
- 用CAsyncSocket通信遇到几个问题
- 动态库中用 CreateWindowEx问题
- 怎么改变另一个进程的窗口标题
- 请大家推荐经典书!
- IOCP网络不稳定情况下客户端掉线问题(愿意提供现金报酬)
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性
if(pWnd->GetDlgCtrlID() == IDC_EDIT_RESULT)
{
pDC->SetBkColor(RGB(255,255,255));
pDC->SetTextColor(RGB(0,0,255));
return (HBRUSH)GetStockObject(WHITE_BRUSH);
} // TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
以上是改变文本框背景颜色以及文字颜色的例子,供参考。
这个我知道。
程序在运行的时候会调用OnPain函数,那么我们可以在这里设置背景颜色。
void CFlipCardsDlg::OnPaint()
{
if (IsIconic())
{
//保持不变
}
else
{
CRect rc;
GetClientRect( &rc );// 获取客户区
CPaintDC dc(this);
dc.FillSolidRect(&rc, RGB(0,160,0)); // 填充客户区颜色
CDialog::OnPaint();
}
}
他设置的是对话框的样色。
还有一次性设置所有的对话框(如果是单文档的话,好像不行)
只要一条语句,但是这里要注意这里绘制的颜色是针对程序中所有的对话框
SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));我想要的是设置对话框上按钮的颜色。
麻烦说一下啊
至于其他:
添加消息WM_CTIColorHBRUSH Ctest02Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性
if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT))
{
COLORREF clr = RGB(255,0,0);
pDC->SetTextColor(clr); //设置红色的文本
clr = RGB(0,0,0);
pDC->SetBkColor(clr); //设置黑色的背景
hbr= ::CreateSolidBrush(clr);
} // TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
这个就必须考虑到自己继承CButton写一个按钮类了,关于异型按钮的办法,可以用贴图或者裁剪按钮区域去实现, 网上有个CButtonST类值得一用请参考一下链接:
http://topic.csdn.net/u/20081208/09/a332f1ac-7a25-4fd3-8d11-535f543a5f66.html
CBitmapButton m_add;
m_add.LoadBitmaps(IDB_BITMAP_ADD);//这个位图设置为你的椭圆形状
m_add.SizeToContent();
LZ,去找找。完全能解决你的问题。