我是MFC的新手我弱弱的问一句很简单的问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 12:03:13
MFC 的消息系统中其中afx_msg int OnCreate (LPCREATESTRUCT lpcs);
这个消息在什么时候响应啊
泠月冰辰 - 高级魔法师 七级
你的意思是不是在调用CString strWndClass = AfxRegisterWndClass(
0,
myApp.LoadStandardCursor(IDC_ARROW),
(HBRUSH)(COLOR_3DFACE+1),
myApp.LoadStandardIcon(IDI_WINLOGO)
);
Create(strWndClass,_T("ColorText"));

这个Creat语句开始执行的时候调用int CMainWindow::OnCreate(LPCREATESTRUCT lpcs)这个消息函数?

唉,又一个看似MFC,但实际不是MFC的问题。
你的问题和我以前差不多,是不是刚从C/C++那块转过来做窗口程序的?
C/C++教会了我们顺序执行的概念,就是代码通常是从上往下执行的。但窗口程序里的代码是乱跳的,那有没有规律呀?当然有啊,windows与用户交互的窗口是通过消息机制进行运作的。因此,你首先要学习windows是如何工作的,知道点了鼠标之后、键盘之后、改变窗口尺寸、切换窗口会引发怎样一系列的行为后,上MFC就简单了很多。而且,在MFC中有很多函数是从API那里直接进行封装的,windows学得好,哪怕第一次看到有些MFC的函数,猜都能猜到这个函数内部是如何运作的。
所以建议学MFC时,还是要配合学习下windows编程。否则MFC里你会冒出层出不穷的问题来,而且MFC学不透彻。
P.S.靠死记MFC里的代码不行哦,知道发,MFC走下坡路了。不久的将来应该是.net的天下了。换了类库,怎么办呢?只有吃透了windows的机理,让它换类库也没问题的,就好比原来用了VC6.0,一下子改成VS2008,会有些不适应,毕竟里面有不同的部分,但核心思想是一样的。正所谓:辫剪了,神还留着!管他微软推.net还是陈旧的MFC,内部机理是一样的。

窗口创建还未显示的时候

OnCreate函数是在窗口发生重绘时响应的函数

应该是Create语句执行完以后才触发WM_CREATE消息