void CT1View::OnDraw(CDC* pDC)
{
CT1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
myButton1.Create(_T("My button"), WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), this, 1); // TODO: add draw code for native data here
}
当按ctrl+F5时,按钮能显示出来,但只要一移动鼠标,就会出现debug assertion
failed提示,这是怎么回事??
(myButton1是试图中定义的public cbutton对象)
{
CT1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
myButton1.Create(_T("My button"), WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), this, 1); // TODO: add draw code for native data here
}
当按ctrl+F5时,按钮能显示出来,但只要一移动鼠标,就会出现debug assertion
failed提示,这是怎么回事??
(myButton1是试图中定义的public cbutton对象)
解决方案 »
- 关于对话框显示的两个小问题,麻烦进来看看哈
- 搜狗浏览器,一个普通用户的感受
- 线程的安全属性是什么东东呀?
- (急)招聘VC++程序员,待遇从优(深圳)
- ++++ 天哪!资源版的板斧没了!! ++++
- vc里可以用"select distinct ..."吗?
- 关于数据库中的日期访问
- clistctrl控件,比如第2行的状态是LVIS_SELECTED,请问用什么代码可以将LVIS_SELECTED状态取消
- -----------------使用gina向远程(本地)计算机发送Ctrl+Alt+Del三键的源程序大放送,请到我主页下载-------------
- 那里能找到Microsoft c7.0???
- 根据COMBO BOX内容判断
- a类中用b类的变量
WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON
不能加在ondraw里面,这个消息函数在窗口重绘时就会响应,你那个create就会重复执行,当然要出错的
我刚才也试了一下,也出错,跟踪了一下,发现mybutton1多次被创建,所以才引起异常的!!如果必须要在OnDraw做,我建议你这样
void CMy678View::OnDraw(CDC* pDC)
{
CMy678Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
static BOOL firsttime=TRUE;
if (firsttime)
{
myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), this, 1);
firsttime=FALSE;
} // TODO: add draw code for native data here
}
{
CView::OnInitialUpdate();
myButton1.Create(_T("My button"), WS_VISIBLE|BS_PUSHBUTTON | WS_CHILD,
CRect(10,10,100,30), this, 1);
// TODO: Add your specialized code here and/or call the base class
}
顺便问一下myButton1.Create(_T( "My button "), WS_VISIBLE ¦BS_PUSHBUTTON ¦ WS_CHILD,CRect(10,10,100,30), this, 1);
中的最后一个参数可以随便设置吗??
还是有一定的范围限制或规则??
中的最后一个参数可以随便设置吗??
还是有一定的范围限制或规则??
~~~~~~~~~~~~~~~~~
最后一个参数是动态生成的按钮的ID,主要是用来进行消息映射的,建议你最好用唯一的id,一般来说,只要在本文件中,没有重复id就没有什么大问题,不过建议你最好使用View菜单->Resource Symbols来创建一个全局唯一的ID,这样就可以避免出现任何问题了,呵呵!