摘要: 要点:1:先创建3个基于CPropertyPage类的属性页,并为其添加响应函数,onSetActive(),OnWizardNext()函数,添加如下代码:第二页中添加个复选框控件,并将其与m_check1关联将其初始化为falseBOOL CStep2::OnSetActive() {CPropertySheet *pSheet=(CPropertySheet *)GetParent();ASSERT_KINDOF(CPropertySheet,pSheet);pSheet->SetWizardButtons(PSWIZB_NEXT|PSWIZB_BACK);return CProp 阅读全文
posted @ 2011-07-28 09:28 role 阅读(1441) 评论(0) 推荐(0) 编辑
摘要: 1建立一个对话框工程;在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码:m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针m_pMenu->AppendMenu(MF_SEPARATOR);//添加分割线m_pMenu->AppendMenu(MF_STRING,IDI_PECULIARMENU,"系统菜单"); 补充:IDI_PECULIARMENU 为一个常数,需要在Resourece.h中宏定义:#define IDI_PECULIARMENU12012在 OnSysCommand 函 阅读全文
posted @ 2011-07-27 16:20 role 阅读(1769) 评论(0) 推荐(0) 编辑
摘要: 1. GetCurrentTime()GetCurrentTime()只和16位版本的windows兼容,在32位windows下最好用gettickcount();2. GetLocalTime()GetLocalTime()在不同的机器中会有不同的结果,这和你在控制面板中的时区设置有关. 该函数是获取的系统当前所属时区的时间, 比如说, 在北京时区, 那么获取的该时间的时间.3. GetSystemTime()GetSystemTime()获取的格林尼治时间, 是全球标准时间.SYSTEMTIME stUTC;GetSystemTime(&stUTC);TCHAR chBuf[nB 阅读全文
posted @ 2011-07-25 18:49 role 阅读(10298) 评论(0) 推荐(1) 编辑
摘要: NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成,工程拷来拷去都会生成新的信息以适应新的环境变量,有时就造成函数变量等不能联想。 所以无所谓的,每一次都可以删掉该文件当我们要从工程中删除一个类时,在删除.h,.cpp,文件后还要删除.ncb文件. 阅读全文
posted @ 2011-07-25 12:48 role 阅读(5673) 评论(0) 推荐(0) 编辑
摘要: 代码简介或代码解析:在一些情况下,应用程序有许多信息要显示,当一个窗口内显示不下时,VC提供的MDI应用程序可以解决这个问题,但是如果应用程序只是对单个文档,采用多种方式显示,则采用SDI更合适。那么,如何在单文档应用程序中实现多视图呢?缺省情况下,派生类的构造函数是pretected类型的,必须将它改为public类型,因为我们将会动态生成派生视图类并切换活动的视图。也可以一次生成所有的视图,但是这样造成系统资源的极大浪费。1首先利用资源编辑器新建4个对话框,在对话框中添加需要的控件,各个对话框的ID分别为IDD_MULTIVIEW_FORM,IDD_MULTIVIEW_FORM2,IDD_ 阅读全文
posted @ 2011-07-25 10:55 role 阅读(2817) 评论(0) 推荐(0) 编辑
摘要: vc如何用messagebox输出键盘按下的键,总结了下……void CWork3Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) {// TODO: Add your message handler code here and/or call default CDialog::OnKeyDown(nChar, nRepCnt, nFlags);/*char lsChar;lsChar=char(nChar); MessageBox(&lsChar);*////*重载PreTransMessage虚函数MSG *pMsg;if( 阅读全文
posted @ 2011-07-25 10:40 role 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 其实我们在C和VC的时候使用的是MessageBox,而不是MessageBoxA,但是程序真正调用的确实是MessagBoxA。A究竟是什么意思呢?这其实涉及到win9X系列的核心和NT核心的区别,win98等并不是真正的32位系统,执行API函数都是ANSI类型的。而到了NT核心的windowsNT 和 windows2000以上的系统都是纯32位模式的,系统的核心基于Unicode,这样其实会导致一个与win9x程序的兼容问题,原来16位的API函数现在在纯32位的NT系统上不兼容。微软的解决办法是:使用两种类型的函数,ANSI就在函数后面标识为MessageBoxA,Unicode版本 阅读全文
posted @ 2011-07-22 19:53 role 阅读(5806) 评论(0) 推荐(0) 编辑
摘要: MSG中的wParam键盘常用ASCII码 ESC键 VK_ESCAPE (27)回车键: VK_RETURN (13)TAB键: VK_TAB (9)Caps Lock键: VK_CAPITAL (20)Shift键: VK_SHIFT ()Ctrl键: VK_CONTROL (17)Alt键: VK_MENU (18)空格键: VK_SPACE (/32)退格键: VK_BACK (8)左徽标键: VK_LWIN (91)右徽标键: VK_LWIN (92)鼠标右键快捷键:VK_APPS (93) Insert键: VK_INSERT (45)Home键: VK_HOME (36)Page 阅读全文
posted @ 2011-07-22 19:29 role 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 这是一个很专业也很有用的问题。其实VC的设计者早就为我们考虑了这个问题。在VC6环境下,选择Class视图,选中想要克隆的对话框所对应的类,例如CAboutDlg,点击鼠标右键,选择Add to gallery。在新工程中选择Project菜单,选择Add Component and ActivX,你会看到多了一个文件夹(与上一个工程同名),进入该文件夹,选择*.ogx。选择Insert,你会发现原来的对话框被加入到新的工程中了!补充:.net下更简单,将原来的工程加到新的工程中,直接将对话框拷贝过去就行了! 阅读全文
posted @ 2011-07-22 18:13 role 阅读(2968) 评论(0) 推荐(0) 编辑
摘要: 列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示LVS_EDITLAB 阅读全文
posted @ 2011-07-22 15:08 role 阅读(8599) 评论(0) 推荐(2) 编辑