加了CButtonST之后程序无法运行了

wangguanguo 2011-04-14 10:39:19
我有一个多文档程序CTestApp,一个登陆界面对话框AdminLogin。
test.cpp
CAdminLogin loginDlg;

if (loginDlg.DoModal()==IDOK)
{

// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.

CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CTestView));
AddDocTemplate(pDocTemplate);//使用了CButtonST之后,这句会出错,其中pDocTemplate不为NULL
在项目中导入BCMenu.cpp,BCMenu.h,BtnST.cpp,BtnST.h,并将AdminLogin的按钮都定义成CButtonST:
CButtonST m_OK;
CButtonST m_cancel;
这样在上面的最后一句出错了。将按钮的定义改成CBitmapButton m_OK;CBitmapButton m_cancel;并将导入的四个文件删除掉就好了。这是什么情况?
另外我使用CButtonST主要是想做个透明效果,MFC对话框设计器的按钮的properties->extended styles里有个Transparent属性。按理说是控制透明度的,可是一般选中不选中都没效果。当按钮背后有picture控件作为背景图片的时候,选中就不透明,不选就透明,似乎反了。
说了这么多不知道说清楚了没有。
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoguailong3 2011-04-14
  • 打赏
  • 举报
回复
起不来了,看下你按钮那修改完了么,需要修改2个地方
HowToP2p 2011-04-14
  • 打赏
  • 举报
回复
pDocTemplate是模板,跟CButtonST有什么关系呢,多贴一些代码看看
nero_liu 2011-04-14
  • 打赏
  • 举报
回复
把你代码都打包一下吧
LICHUNLI1022 2011-04-14
  • 打赏
  • 举报
回复
CButtonST的bug啊,我也头疼呢
wangguanguo 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 howtop2p 的回复:]

pDocTemplate是模板,跟CButtonST有什么关系呢,多贴一些代码看看
[/Quote]
// m_OK.DrawTransparent();
// m_cancel.DrawTransparent();
// m_OK2.DrawTransparent();//这三句是使用CButtonST时用的。
HINSTANCE hInstance = AfxGetResourceHandle();
HBITMAP hBitmap = (HBITMAP)::LoadImage(hInstance,MAKEINTRESOURCE(IDB_OKLogin),IMAGE_BITMAP,0,0,0);
m_OK.SetBitmap(hBitmap);
hBitmap = (HBITMAP)::LoadImage(hInstance,MAKEINTRESOURCE(IDB_cancel),IMAGE_BITMAP,0,0,0);
m_cancel.SetBitmap(hBitmap);
hBitmap = (HBITMAP)::LoadImage(hInstance,MAKEINTRESOURCE(IDB_standalone),IMAGE_BITMAP,0,0,0);
m_OK2.SetBitmap(hBitmap);
改动的代码就这么多,上面注释的三句是使用CButtonST时的方法,下面是使用CBitmapButton的代码。其他的代码跟按钮没关系,没有更改。
wangguanguo 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaoguailong3 的回复:]

起不来了,看下你按钮那修改完了么,需要修改2个地方
[/Quote]
不是就一个地方吗?在头文件中定义控件变量的地方。
wangguanguo 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nero_liu 的回复:]

把你代码都打包一下吧
[/Quote]
怎么打包?打包了有什么用?

15,979

社区成员

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

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