VC常用小技巧--让窗口一启动就最大化_第1页
VC常用小技巧--让窗口一启动就最大化_第2页
VC常用小技巧--让窗口一启动就最大化_第3页
VC常用小技巧--让窗口一启动就最大化_第4页
VC常用小技巧--让窗口一启动就最大化_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、vc常用小技巧一让窗口一启动 就最大化窗口让窗口一启动就最大化把应用程序类(cxxxapp)的lnitlnstance()函数中的 m_pmainwnd-showwindow(sw_show);改为 m_pmainwnd-showwindow(sw_showmaximized);则窗口一启动就最大化显示。显示位置的设置方法getwindowrect()得到的是在屏幕坐标系下的rect (即以屏幕左上角为原点)getclientrect()得到的是在客户区坐标系下的rect (即以所在窗口左上角为原点,去掉了标题栏计算,仅仅是个大小,返回值的左上角永远为0, 0) screentoclient(

2、)就是把屏幕坐标系下的rect坐标转换为客户区坐标系下的rect坐标。如果需要获得窗体在屏幕上的位置,使用getwindowrect 如果需要获得窗体的大小,使用getclientrect如何设置窗口的初始尺寸在将应用程序类(cxxapp)的lnitlnstance()函数中加入:m_pmainwnd-setwindowpos(null,x,y,width,height,swp_nomove);width为窗口宽度,height为窗口高度swp_nomove表示忽略位置(x,y).如:让窗口居中显示以下两种方法可任选其一:在应用程序类(cxxxapp)的initlnstance。函数中加入:在

3、主框架类(mainfrm.cpp)的oncreate()函数中加入:centerwindow( getdesktopwindow();如:如何修改窗口标题窗口标题一般形式为:文档标题程序标题1、设置文档标题:在文档类(cxxxdoc)的onnewdocument()函数中加入语句:settitle(文档名)如:texteditordoc.cpp:可删除debug文件夹和release文件夹;原则上还可删除主文件夹中所有图标为的文件,包括.aps、.neb、.opt、.pig等文件,它们 都能在编译时重建。但一般.clw不要删除,它可能导致classwizard不好用控件如何隐藏和显示控件 用c

4、wnd类的函数bool showwindow(int ncmdshow)可以隐藏或显示一个控件。例1:cwnd *pwnd;pwnd = getdlgltem( idc.edit1 ); 获取控件指针,idc_edit 为控件 id 号 pwnd-showwindow( sw_hide ); 隐藏控件例2:cwnd *pwnd;pwnd = getdlgltem( idc.edit1 ); 获取控件指针,idc_edit 为控件 id 号 pwnd-showwindow( sw_show ); 显示控件按钮的使能与禁止用 classwizard 的 member variables 为按钮定义

5、变量,如:m_button1; 则m_button1 .enablewindow(true);使按钮处于允许状态m_button1 .enablewindow(false);使按钮被禁止,并变灰显示改变控件的大小和位置用cwnd类的函数movewindow()或setwindowpos()可以改变控件的大小和位置。void movewindow(int x,int y,int nwidthjnt nheight);void movewindow(lpcrect iprect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的crect对象: 例:cwnd *pwnd;pwnd

6、 = getdlgltem( idc.edit1 ); 获取控件指针,idc_edit1 为控件 id 号pwnd-movewindow( crect(0,0,100,100); 在窗口左上角显示一个宽 100、高 100 的编辑 控件setwindowposo函数使用更灵活多用于只修改控件位置而大小不变或只修改大小而位置不变 的情况:bool setwindowpos(const cwnd* pwndlnsertafterjnt x,int y,int cx,int cy,uint nflags);第一个参数一般设为null;x、y控件位置:ex、cy控件宽度和高度;nflags常用取值:s

7、wp-nozorder:忽略第一个参数:swp.nomove;忽略x、v,维持位置不变;swp_nosize:忽略ex、cy,维持大小不变:例:cwnd *pwnd;pwnd = getdlgltem( idc_button1 ); 获取控件指针,idc_button1 为控件 id 号 pwnd-setwindowpos( null,50,80,0,0,swp_nozorder | swp-nosize ); 把按钮移到窗口的(50,80)处pwnd = getdigltemf idc_edit1 );pwnd-setwindowpos( null,0,0,100,80,swp_nozord

8、er | swp_nomove ); 把编辑 控件的大小设为(100,80),位置不变pwnd = getdlgltem( idc_edit1 );pwnd-setwindowpos( null,0,0,100,80,swp_nozorder ); 编辑控件的大小和位置都 改变以上方法也适用于各种窗口。单选按钮控件(radi。button)的使用一、对单选按钮进行分组:每组的第一个单选按钮设置属性:group, tabstop, auto;其余按钮设置属性tabstop, auto. 如:radiol、radio2 radio3 为一组,radio4 radio5 为一组设定 radiol 属

9、性:group, tabstop, auto设定 radio2 属性:tabstop, auto设定 radio3 属性:tabstop, auto设定 radio4 属性:group, tabstop, auto设定 radio5 属性:tabstop, auto二、用classwizard为单选控件定义变量,每组只能定义一个。如:m_radio1. m_radio40 三、用classwizard生成各单选按钮的单击消息函数,并加入内容:void cweditview:onradio1()(m_radio1 =0;第一个单选按钮被选中)void cweditview:onradio2()(

10、m_radio1 = 1 ; 第二个单选按钮被选中)void cweditview:onradio3()(m_radio1 = 2; 第三个单选按钮被选中)void cweditview:onradio4()(m_radio4 = 0; 第四个单选按钮被选中)void cweditview:onradio5()(m_radio4 = 1 ; 第五个单选按钮被选中)当控件变量值为0时,它对应组的第一个单选按钮处于选中状态。bool cdzyapp:lnitlnstance()i afxenablecontrolcontainer();i / the one and only window has

11、 been initialized, so show and update it.;m3mainwndosetwindowpos(null,0,0,750,555,swp_nomove);设置窗 口 的初始大小为 750*555m_pmainwnd-showwindow(sw_show);m_pmainwnd-updatewindow();i return true;l)m_pmainwnd-centerwindow( getdesktopwindow();int cmainframe:oncreate(lpcreatestruct ipcreatestruct) i if (cframewn

12、d:oncreate(lpcreatestruct) = -1)i return -1;i /todo: delete these three lines if you donft want the toolbar toi / be dockablei m_wndtoolbar.enabledocking(cbrs_align_any);enabledocking(cbrs_align_any);i dockcontrolbar(&m_wndtoolbar);icenterwindow( getdesktopwindow(); 使窗口打开时处于屏幕正中ii return 0;l)bool ct

13、exteditordoc:onnewdocument() if (!cdocument:onnewdocument()i return false;i / todo: add reinitialization code herei / (sdi documents will reuse this document)i settitle(未命名.txt); /设置文档标题i return true;l)2、设置程序标题:在框架类(cmainframe)的precreatewindow。函数中加入语句:m_strtitle = _t(程序标题);如:mainfrm.cpp:bbbool cmain

14、frame:precreatewindow(createstruct& cs) i if( !cframewnd:precreatewindow(cs)i return false;i / todo: modify the window class or styles here by modifyingi /the createstruct csi cs.style&=fws_addtotitle;去除标题栏文字前面的“无标题”i m_strtitle = _t(文本整理器。/设置程序标题i return true;l)以上两点比较适用于视图文档结构的程序,在新建文档时,系统会自动运行onne

15、wdocumento函数,在其中可以设置合适的标题。对于未采用文档的程序可以用下面的方法修改标题:3、修改窗口标题:修改窗口标题一般在打开文件函数onfileopen()和另存为函数onfilesaveas。中进行,可以 使用下面的函数:其中文档标题和程序标题可使用定义过的串变量。项目如何干净的删除一个类?1、先删除项目中对应的上和.cpp文件,(选中后用delete键删除)2、保存后退出项目,到文件夹中删除实际的.h和.cpp文件;3、删除.clw文件;4、重新进入项目,进行全部重建(rebuild all)。如何建立一个新类?从“插入”(insert)菜单中选择“新建类”(new clas

16、s),在弹出的对话框中选择基类(base class),在name中输入新类的名字(一般都以c开头)即可。如果想要建立一个没有基类的自定义类,则在new class对话框中把class type设置为generic,再输入类名即可。如何把外来文件添加到项目中?先把外来文件复制到当前项目的目录下,从“项目”(project)菜单下选择“添加项目(add to project)下的“fhes”菜单项,从弹出的打开文件对话框中把外来文件打开即可。如何在一个工作区中打开多个项目?一般编程者都有这样的经历:做了一个项目,由于不满意,想从头秉做,但又想把旧项目的 一些可用内容拷到新项目中来,以免做重复工作

17、,这时就需要在新项目中打开旧项目。先打开新项目,从“项目”(project)菜单下选择“插入项目到工作区”(insert project into workspace),从弹出的打开文件对话框中打开旧项目的.asp文件即可。之后,可以利用“项目”(project)菜单下的“设置活动项目”(select active project)的选项中 切换各打开的项目。注意:在一个工作区中打开的各项目不能同名。如何把项目中的文件分类存放?当我们往项目中添加新类时,它会把源文件放在source files下,头文件放在header files 下。当项目中文件很多时,管理不便,最好添加新节点,把文件分类放

18、置。右击项目节点树的根节点,选择“new folder.”,在弹出的对话框中填入新节点名,则新节点就建立了,用鼠标节点树中的文件拖入新节点,就可以把文件分类了。以上分类只是在项目的节点树中分类,它不影响文件在磁盘上的位置,所有.cpp文件和.h文件 仍在项目的根目录下,最好文件本身也能分类存放在不同文件夹中。在windows下,用“新建文件夹”在项目的根目录下建立子文件夹,如dialogclass,把所有对话框类的.cpp文件和.h文件拖入其中。回到vc下,右键单击项目树中更改了路径的节点,选择“properties”,在弹出的对话框中修改 文件路径,如:u.dialog1.cpp,m.dia

19、logclassdialog1.cpp.打开dialogl.cpp文件,修改它包含的文件路径。如:#include stdafx.hinclude f,pluckbox.hm#include mdialog1.hm改为:#include stdafx.hinclude .pluckboxh”#include mdialog1.hm打开classwizard,它会提示你文件不存在,单击“确定”后,从对话框中用“browse.”选择文 件所在路径,则classwizard也可正常使用了。编辑编辑代码时,跟随提示消失了怎么办?单 击“工具”(tools)菜单中的“设置”(options)菜单项,在弹

20、出的options对话框中选择editor制衣页,把它最下方的四个复选框都 选中(aut。list member、auto type info. codecomments、auto parameter info),这样,当用户输入“、或时,会自动显示跟随提示,减少了输入负担。对话框如何修改对话框的背景色在对话框的onpaint()函数中加入下面语句:crect rect;getclientrect(&rect); 计算对话框的尺寸dc.fillsolidrect(&rect,rgb(192,248,202);绘制对话框背景色如何让弹出式对话框具有统一的背景色在应用程序类cxxxapp的initlnstance。函数中加入下面的语句:setdialogbkcolor( rgb(192,248,202);则所有用户定义的弹出式对话框都以rgb(192,248,202)为背景色,就不需要逐个进行设置了。如何让打开文件对话框能进行多项选择在定制打开文件对话框时,增加ofn_allowmultiselect属性,就可以使打开文件对话框进行多选了。如:cfiledial

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论