如果改变CStatic 边框的颜色

ghlanmao 2003-08-25 10:11:22
应用意义是这样的:平时是黑色边框,当有输入时变为其他颜色表示选中。 请给出示例。
...全文
286 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghlanmao 2003-08-25
  • 打赏
  • 举报
回复
sorry hcpl, 刚才没有看你的东东就结了帖,嘿嘿。 本来应该1个50的。 你做的那个很好。 多谢!
ghlanmao 2003-08-25
  • 打赏
  • 举报
回复
刚才研究了一下,看来似乎只有:自己定义一堆ID,然后手工添加一排的映射:
ON_STN_CLICKED(ID_..., OnClickedMyFrame)
好了,给分啦: hydcumt(hyd) 85分吧, bcpl(戒烟直到五颗星) 15分
bcpl 2003-08-25
  • 打赏
  • 举报
回复
http://my.6to23.com/cigarette/dd2.zip
ghlanmao 2003-08-25
  • 打赏
  • 举报
回复
^_^,可以了,多谢。 再请问下:如何在代码中添加消息映射啊。
比如:我从CStatic派生了1个CFrame类,并且用CFrame类创建了1个数组:CFrame myFrame[12];
在OnInitDialog()中动态创建了这些Frame,然后希望把这些Frame的BN_CLICKED消息都映射到1个响应函数:OnClickedMyFrame(...)上,请问该怎么做?(一起给分)
ghlanmao 2003-08-25
  • 打赏
  • 举报
回复
好,先试下,可以就给分。
hydcumt 2003-08-25
  • 打赏
  • 举报
回复
这个比较容易,你派生一个CSTATIC的类,在OnPaint()函数里面,
CBrush brush(RGB(0,128,192));
CBrush brushFrame(framecolor);//边框颜色,framecolor---为全局变量
dc.FillRect(&rect,&brush);
dc.FrameRect(&rect,&brushFrame);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(255,255,255));
CFont * pOldFont;
pOldFont=SetCaptionFont(&dc);
dc.DrawText(strText,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
dc.SelectObject(pOldFont);
在定义一个framecolor(COLORREF color)
{
framecolor = color;
}
在改变颜色时:先调用framecolor
然后调用CSTATICEX::Invalidate();就可以了!
你试试可不可以!
ghlanmao 2003-08-25
  • 打赏
  • 举报
回复
所谓输入是指用户输入,如:接受鼠标点击==,这个不是问题,关键在于怎么动态改变边框颜色?!
bcpl 2003-08-25
  • 打赏
  • 举报
回复
CStatic怎么输入?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧