打开金山毒霸2008然后杀毒,在下面有个设置复选框(Checkbox):杀毒完成后关机(当杀毒设置为自动清除时有效).
当鼠标放在上面时,光标变为手的形状,在复选框上单击鼠标左键,复选框被选中,但是在复选框标题(文字)周围没有虚线框(请朋友们仔细观察,普通的复选框在点击鼠标左键时有虚线框)。
请问这是如何实现的?
当鼠标放在上面时,光标变为手的形状,在复选框上单击鼠标左键,复选框被选中,但是在复选框标题(文字)周围没有虚线框(请朋友们仔细观察,普通的复选框在点击鼠标左键时有虚线框)。
请问这是如何实现的?
解决方案 »
- CWnd::GetDC()的问题
- 请问如何实现像UltraEdit一样在当前编辑的行显示一条黄色的带
- 谁能给我个串口监视线程的源代码?谢谢了!
- TCP连接断开后,netstat -na 测试端口状态为TIME_WAIT,再打开同一端口,却无法建立连接?
- 为什么我设置了消息响应函数,toolbar的按钮还是灰色的?
- 一个有关无模式对话框显示图线的问题?
- 请问下面的一段程序为什么用datagrid打不开access数据库”第一层表“?
- Execute为什么取不到数据
- 如何产生随机数?请举例产生介于1与10之间的随机数的代码?
- 求助,这道题目我感觉无从下手??哪位高手能帮帮我,谢谢了
- 哪里有MDI工程实例
- 我用C++写的dll文件或OCX文件有没有可能被反编译?如何防范?
像帖子里面Button1.SetFocus(); 把焦点移到了button1上面了
不同的操作系统对于不同控件焦点的消息处理也不太一样。
有问题再讨论。
而是checkbox在鼠标左键单击之后会出现虚线框,怎样在鼠标单击之后不出现虚线框呢?在onDrawItem()操作就可以了吗?不用捕获鼠标左键单击的消息吗?
A .那麼有關於不顯示虛線框的方式,可以試著在 OnEnter 事件中以轉移物件 Focus 給其它不顯示虛線框也不影響操作的物件,例如
void __fastcall TForm1::TrackBar1Enter(TObject *Sender)
{
Panel1->SetFocus();
}
你把该复选框的标题文字设定为空(SetWindowText(_T("")))
然后复选框后边的文字你用贴图或者画(TextOut())字的方法显示。
OnEnter函数,WM_ENTER消息,那是在DELPHI中吧,在VC中什么时候有这个消息啊?什么时候能触发这个消息哦?
子类划参见
http://www.codeproject.com/KB/miscctrl/subclassdemo.aspx
1,在对话框上放置一个checkbox,ID为IDC_CHECK1,在Style里将Bitmap勾选上,设置为位图按钮;
2,从CButton派生一个新的类CMybutton,然后在对话框的头函数中定义:CMybutton m_bybtn,然后在对话框的OnInitDialog()里加上:m_mybtn.SubclassDlgItem( IDC_CHECK1, this );
3,在CMybutton加入afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
***注意不是:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);这个函数根本不会进入,原因我还没弄清楚***
然后加入代码:
HBRUSH CMyButton::CtlColor(CDC* pDC, UINT nCtlColor)
{
pDC->SetBkMode( TRANSPARENT );
pDC->SetTextColor( RGB(255,255,0) );
pDC->TextOut( 20, 2, "杀毒完成后关机(当杀毒设置为自动清除时有效)" ); return (HBRUSH)GetStockObject(NULL_BRUSH);
}
OK,搞定!谢谢大家的帮助,在此把解决方法和大家分享!