关于位图按钮的两个问题
来源:互联网 发布:ios清理沙盒中的数据 编辑:程序博客网 时间:2024/05/17 03:04
关于位图按钮的两个问题:
1、当给按钮装载背景图片并且设置Owner Draw属性后,调试出现:“User breakpoint called from code at 0x77f9f9df”的错误 。
解决方法:当按钮选择Owner Draw属性后,需要强制重载OnDrawItem,进行自绘,否则就会出现错误。
2、当点击按钮时,按钮没有状态反应。
解决方法:需要在OnDrawItem中对按钮进行自绘,在重绘函数中,根据按钮的不同状态,进行不同的绘制,示例代码如下:
void CXXXDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
if( nIDCtl == IDC_PREV || nIDCtl == IDC_NEXT
|| nIDCtl == IDC_FIRST || nIDCtl == IDC_LAST
|| nIDCtl == IDC_START || nIDCtl == IDC_STOP
|| nIDCtl == IDC_CLEAR || nIDCtl == IDC_FULLSCRI
|| nIDCtl == IDOK )
{
UINT uStyle = DFCS_BUTTONPUSH;
//是否按下去了?
if (lpDrawItemStruct->itemState & ODS_SELECTED)
uStyle |= DFCS_PUSHED;
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
//是否得到焦点
if(lpDrawItemStruct->itemState & ODS_FOCUS)
{
//画虚框
CRect rtFocus = lpDrawItemStruct->rcItem;
rtFocus.DeflateRect(2, 2);
dc.DrawFocusRect(&rtFocus);
}
return;
}
CXXXDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn
- 关于位图按钮的两个问题
- 位图按钮的使用
- 关于位图的一道典型问题
- android 关于位图和矩阵的两个函数
- 图标按钮、位图按钮、CBitmapButton 类位图按钮的制作
- jsp关于form表单为两个按钮设置不同action的问题
- jsp关于form表单为两个按钮设置不同action的问题
- 关于一个按钮绑定两个事件的问题,click和submit
- 关于按钮的css问题
- 关于三台按钮的问题
- GTK+位图按钮的封装
- 位图按钮的新颖用法
- 关于RICHEDIT的两个问题
- 关于输入法的两个问题
- 两个关于音频的问题
- 关于MSDE 的两个问题
- 关于CHECKBOX的两个问题
- 关于Cactus的两个问题
- 十年MFC经历认识的Microsoft技术[转]
- [转]Java学习从入门到精通
- 让FreeBSD自动启动服务
- 虚析构函数
- 发现一个2k/xp/2003的补丁中心,直接下载!
- 关于位图按钮的两个问题
- [转]Java学习从入门到精通
- Template Metaprogramming
- PHP中静态页处理动态内容的思路
- [转]发布一个权限管理程式
- C++ local class 的用途:finalizer 手法
- 模板元编程 --- 用 MPL 解决实际问题
- [转]OOP的PHP长啥样
- 数据库连接字符串