今天从图书馆走回来(这对于华工来说,不是件容易的事情)。看到大嘴的电脑前围了几个人,过去一看,原来是CPropertySheet的使用出了点问题,于是就跟大家讨论了一下。
关于初始化部分,最初选择放在类的构造函数中,但是这里有些成员变量是CONTROL型的,在构造CPropertySheet的派生类的时候,该控件还没有创建,所以运行会出错。所以改到initdialog里面。一切ok。
关于返回的问题。由于CPropertySheet默认不能由classwizzard添加onok的响应函数。所… [...]
关于对于VC/MFC/ATL的评论问题,其实我很早就想写一篇文章来阐述自己的观点,不过又觉得这种容易引发论战的文章实际上是在空耗大家的时间, 不如做点实际工作. 但是现在中国程序员群体的思想走向已经到了一种非常危险的一边倒的地步,上几期电脑报上登出了几名14岁的小孩子, 刚刚学会写几个程序, 就把VC列为自己的梦想. 我去年找工作的时候,连续被几个公司问会不会VC,得到我的答复之后,他们怎么也不能相信一个学了四年C,两年多C++,还利用“空闲”时间学习了Java、Perl… [...]
学习mfc到一定程度,必然要查看一下它的源代码。可是组成mfc源代码的文 件太多又太长,如何快速方便地找到我们要看的东西? 初次学习vc的朋友或许不知道在你的vc++6.0安装目录的某个角落里有这么一 个文件:mfc.bsc。这可是学习掌握vc和mfc的好帮手。靠它可以找出vc和mfc中某 个类的声明和成员函数的定义,可以找到vc中每一个预定义名和宏的定义,找出 一个文件里都声明了什么类,类中有些什么成员,还可以找出mfc中各个类的各个 成员函数谁调用了谁。 打开你的vc++6.0,先随便打开一… [...]
The following table describes the error codes contained in Winerror.h included with Microsoft Visual C++ version 5.0:
Automation Automation
Error Error
in Decimal in Hex Error Description
-2147418113 (8000FFFF) … [...]
因为要在vc中连接数据库,所以在CMyApp::InitInstance()中调用了AfxOleInit(),但是不想,程序在Debug模式刚开始启动的时候报错,调试得出错的断言为
_AFX_THREAD_STATE* pState = AfxGetThreadState(); ASSERT(!pState->m_bNeedTerm); // calling it twice?
也就是说,该函数可能被执行了两次,但是搜索整个工程并没有发现啊,于是吧AfxOleIn… [...]
CStdioFile emlfile; emlfile.Open( "1212.eml",CFile::modeReadWrite|CFile::modeCreate); emlfile.Write(smsg,smsg.GetLength()); emlfile.Close();
结果1212.eml文件用ultraedit打开的时候提示是否要转为dos格式,而且,所有的邮件浏览器都不能正常现实。后来把代码中的CFile就一切正常了… [...]
CFont* pFont = new CFont();pFont->CreateFont(60,0,0,0,550,0,0,0,ANSI_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,0,3,NULL);
cwnd类有一个成员函数SetFont,所以直接调用就可以了。而且这只是修改一个控件的字体,不需要修改回来吧……. [...]
要修改VC模式对话框控件属性,必然,最重要的是弄清楚对话框上的控件在何时创建,要在保证创建之后才修改,在网上找到一些资料,提出了修改对话框类的构造函数的方法,但是经测试,不能完成。后来把
m_ListSet.AddString("属性");
放到对话框类的 OnInitDialog()函数中,响应WM_INITDIALOG消息,顺利执行!
具体原因等毕业设计做完之后去研究。
当DoModal被调用后,实际在幕后引起一系列如下的动作:CDia… [...]
如果想做出高彩工具栏,只需以下几步:1、在res目录下找到Toolbar.bmp,记下尺寸,比如128×31;2、用同样大小做一幅24位色的高彩图片,存为CoolBar.bmp;3、把此图片引入资源,命名为IDB_COOLBAR,会提示无法正确显示,不用管它;4、在CMainFrm中添加成员变量CBitmap m_bmpToolbarHi,在CMainFrame::OnCreate()里,在工作栏创建代码的后面加上下面两行: &… [...]
在毕业设计中,发现,listview中每改变一次选择,OnItemchanged函数执行了,三次,后来查证之后发现,state不光是选择的变化,还包括了焦点,还有其它的的变化第1次是iOldItem从LVIS_SELECTED到0(取消选择)第2次是iOldItem从LVIS_FOCUSED到0(取消焦点)第3次是iNewItem从0到LVIS_SELECTED | LVIS_FOCUSED(获得选择,同时获得焦点)
只在获得选择的时候执行,就需要这样if( (p… [...]