07 2011 档案
vc小程序---右键菜单栏的建立以及简单的数据库连接的基本知识(PopMenu)
摘要:1:新建一个基于对话框的mfc应用程序,添加个列表框,并对其进行报告顶端的设置,添加个菜单子菜单为降序升序, 并为其添加响应函数void CMyPopMenuDlg::OnMenuitemasc() {// TODO: Add your command handler code hereLoadBookInfo(false);}void CMyPopMenuDlg::OnMenuitemdesc() {// TODO: Add your command handler code hereLoadBookInfo(TRUE);}增加消息响应函数:(响应鼠标右键)void CMyPopMenuDl 阅读全文
posted @ 2011-07-29 09:18 role 阅读(453) 评论(0) 推荐(0)
mfc 小程序--向导对话框的创建
摘要:要点: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 阅读(1465) 评论(0) 推荐(0)
mfc 小程序---在系统菜单中添加菜单项
摘要: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 阅读(1775) 评论(0) 推荐(0)
GetCurrentTime(),GetLocalTime(),GetSystemTime()之间的区别
摘要: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 阅读(10340) 评论(0) 推荐(1)
vc 工程下的.ncb文件的作用
摘要:NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成,工程拷来拷去都会生成新的信息以适应新的环境变量,有时就造成函数变量等不能联想。 所以无所谓的,每一次都可以删掉该文件当我们要从工程中删除一个类时,在删除.h,.cpp,文件后还要删除.ncb文件. 阅读全文
posted @ 2011-07-25 12:48 role 阅读(5717) 评论(0) 推荐(0)
《转》MFC单文档视图切换
摘要:代码简介或代码解析:在一些情况下,应用程序有许多信息要显示,当一个窗口内显示不下时,VC提供的MDI应用程序可以解决这个问题,但是如果应用程序只是对单个文档,采用多种方式显示,则采用SDI更合适。那么,如何在单文档应用程序中实现多视图呢?缺省情况下,派生类的构造函数是pretected类型的,必须将它改为public类型,因为我们将会动态生成派生视图类并切换活动的视图。也可以一次生成所有的视图,但是这样造成系统资源的极大浪费。1首先利用资源编辑器新建4个对话框,在对话框中添加需要的控件,各个对话框的ID分别为IDD_MULTIVIEW_FORM,IDD_MULTIVIEW_FORM2,IDD_ 阅读全文
posted @ 2011-07-25 10:55 role 阅读(2904) 评论(0) 推荐(0)
vc如何用messagebox输出键盘按下的键
摘要: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 阅读(697) 评论(0) 推荐(0)
MessageBoxA究竟是什么
摘要:其实我们在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 阅读(5936) 评论(0) 推荐(0)
vc++编程怎么知道键值??
摘要: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 阅读(859) 评论(0) 推荐(0)
vc中如何拷贝一个工程的对话框 资源到另一个工程中?
摘要:这是一个很专业也很有用的问题。其实VC的设计者早就为我们考虑了这个问题。在VC6环境下,选择Class视图,选中想要克隆的对话框所对应的类,例如CAboutDlg,点击鼠标右键,选择Add to gallery。在新工程中选择Project菜单,选择Add Component and ActivX,你会看到多了一个文件夹(与上一个工程同名),进入该文件夹,选择*.ogx。选择Insert,你会发现原来的对话框被加入到新的工程中了!补充:.net下更简单,将原来的工程加到新的工程中,直接将对话框拷贝过去就行了! 阅读全文
posted @ 2011-07-22 18:13 role 阅读(2993) 评论(0) 推荐(0)
VC++ 列表控件(CList) 使用方法 (2)
摘要:列表控件可以看作是功能增强的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 阅读(8695) 评论(0) 推荐(2)
CListCtrl控件
摘要:CListCtrl控件在数据库编程中是用得比较多的控件之一,也是Window控件中较难掌握的一个控件。他可以有四显示方式1:报告显示方式在Report方式中,列表控件的显示方式是有行和列的,行有叫做Item,但有多列是我们只能操作每一行的第零列,也就是最前列。插入列,可以用SetExtendedStyle设置风格,之后使用的是InsertColumn 比如: m_list.InsertColumn (0,"学号",LVCFMT_CENTER,60);设置完列后我们就可以设置列表控件的数据了使用的是InsertItem和setItemText其中InsertItem用于向列表 阅读全文
posted @ 2011-07-22 15:06 role 阅读(1118) 评论(0) 推荐(2)
对话框上显示图片
摘要:对话框上显示图片用图片控件,好像图片最多色彩数不超过256色,也就是8位,但是用代码在里面写的方法就可以解决这个问题了.]让一个对话框显示背景通常有两种做法:使用图片控件、在WM_PAINT消息中画图。用图片控件非常简单,但功能功能不强大,不能对图片拉申等。在WM_PAINT中画图,相对复杂,但可以做很多特殊处理(如对图片拉申、图片取反等等)。那么下面就对两种方法略述。1、用图片控件静态加载图片(bmp和ico格式) 在对话框中加入Picture控件,属性页中General->Type设为Bitmap, Image中选中相关联的图片资源号。(也就是Bitmap下的IDB号) 2、用pictur 阅读全文
posted @ 2011-07-21 21:10 role 阅读(2641) 评论(0) 推荐(0)
如何在单文档中显示"hello mfc"
摘要:创建个单文档,在view 类中的OnDraw()中添加如下代码:CRect object;GetClientRect(&object);//获取客户区的大小int x=object.right/2,y=object.bottom/2;//用来标定输出的位置pDC->SetTextAlign(TA_LEFT|TA_TOP);//该函数为指定设备环境设置文字对齐标志//设置文本格式pDC->TextOut(x,y,"hello,mfc",2);//文本输出,后面那个2是截取字符串数,可以不要,//不懂的是如果字符串太长,一行打印不完,如何换行?pDC-> 阅读全文
posted @ 2011-07-21 19:45 role 阅读(2193) 评论(0) 推荐(0)
CRect类 的介绍
摘要:类CRect是对Windows结构RECT的封装,凡是能用RECT结构的地方都可以用CRect代替。结构RECT表示一个矩形的位置和尺寸,其定义为:typedef struct tagRECT{LONG left;LONG top;LONG right;LONG bottom;} RECT;其中 left、top分别表示矩形左上角顶点的横坐标和纵坐标,right、bottom分别表示矩形右下角顶点的横坐标和纵坐标。由于CRect提供了一些成员函数和重载运算符,使得CRect的操作更加方便。 1.CRect的构造函数 CRect有如下6个构造函数:CRect( );CRect( int l, i 阅读全文
posted @ 2011-07-21 18:56 role 阅读(15871) 评论(0) 推荐(0)
多文档下的用户登录界面
摘要:参考<visual c++实用教程>人民邮电出版多文档下的用户登录界面先创建多文档下的appwizard,插入对话框,设置控件以及它的关联变量后,为对话框添加控件通知消息的处理函数:为确定键添加响应函数onok()的代码,编辑代码如下: UpdateData();//获取输入框的内容,这句话很关键喔……呵呵if(m_szLoginName=="user"&&m_szPassword=="test1234"){MessageBox("用户验证通过","登录提示",MB_OK);}else{ 阅读全文
posted @ 2011-07-21 16:02 role 阅读(304) 评论(0) 推荐(0)
MDI启动时不建立一个新文件的方法
摘要:使用AppWizard 工具生成的MDI程序启动时会默认创建个空白文件,但有时会带来麻烦//MDI启动时不建立一个新文件,将InitInstance()中的代码修改为如下:CCommandLineInfo cmdInfo;if(cmdInfo.m_nShellCommand==CCommandLineInfo::FileNew){cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing;}ParseCommandLine(cmdInfo); 阅读全文
posted @ 2011-07-21 08:58 role 阅读(260) 评论(0) 推荐(0)
《转》[MFC] CDialog::DoModal()函数用法
摘要:5.2 创建有模式对话框使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法:CYourView::OnOpenDlg(){ CYourDlg dlg; int iRet=dlg.DoModal();}CDialog::DoModal()的返回值为IDOK,IDCANCEL。表明操作者在对话框上选择“确认”或是“取消”。由于在对话框销毁前DoModal不会返回,所以可以使用局部变 阅读全文
posted @ 2011-07-20 20:44 role 阅读(11608) 评论(0) 推荐(1)
vc对话框中的组框控件起什么作用?怎么用呢?
摘要:它可将多个单选按钮圈起来,再将你想设为默认按钮的那个按钮的Group属性选中,其它按钮的Group属性取消。这样这些RADIO按钮就成了一组可以实现在他们之间进行单选,这4个按钮只有group属性的可以影射一个变量,其类型为int,这个变量可以用来返回用户选择了哪个选项,0表示选择了第一个,1表示选择了第二个, ....依此类推 这样以后就可以分别对不同的RADIO按钮进行消息映射了被分到一组里的单选框是互斥的,不在一个组里的单选框是互不影响的 阅读全文
posted @ 2011-07-18 16:00 role 阅读(721) 评论(0) 推荐(0)
非模态(Modeless)对话框与模态(Modeless)对话框的区分
摘要:非模态(Modeless)对话框,又叫做无模式对话框,当用户打开非模态对话框时,依然可以操作其他窗口。例如,Windows提供的记事本程序中的【查找】对话框。【查找】对话框不会垄断用户的输入,打开【查找】对话框后,仍可与其他用户界面对象进行交互。用户可以一边查找,一边修改文章,这样就大大方便了使用。 非模态对话框允许用户在处理非模态对话框的同时处理目标对话框。其不会垄断用户的输入,如图所示。 Windows应用程序中,对话框分为两种。另一种是模态对话框。二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。 要建立非模态对话框需要调用两个函数 Creat()和ShowWindow() 阅读全文
posted @ 2011-07-18 15:02 role 阅读(357) 评论(0) 推荐(0)