vc++经典技巧总结

2019-03-15 17:13

vc++经典技巧总结

分类: VC++编程技术 2008-12-31 12:23 36341人阅读 评论(2) 收藏 举报

1.\属性页的添加:

创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码: m_tabsheet.Create(this, WS_CHILD | WS_VISIBLE, 0); \使选项卡的按钮在下面 \

\显示选项卡 //加入标签,标签名由各个子对话框的标题栏决定 \\用Create来创建一个属性页

\\

RECT rect;

\\\\

\调整属性页的大小和位置

\属性页的添加完成。如果要添加多个属性页,则只需要增加多个对象,如下:m_tabsheet.AddPage(&m_skatch1); m_tabsheet.AddPage(&m_skatch2); . . . . . .

2.\中标题栏(Column)的添加:

创建一个List Control,其ID为IDC_LIST,在其Styles属性项下的View项里选择Report、Align项里选择Top、Sort项里选择None.

然后在该List所在对话框的类(头文件)里创建ClistCtrl的一个对象m_list然后在.cpp文件的OnInitDialog()之类的函数里实现如下代码:

CString strname[3]; strname[0]=\strname[1]=\strname[2]=\for(int i=0;i<3;i++) {

m_List.InsertColumn(i,strname[i],LVCFMT_LEFT,130); }

在这之前也要将List Control的ID与ClistCtrl的对象m_list在DoDataExchange(CDataExchange* pDX)函数里绑定,如下: DDX_Control(pDX, IDC_LIST, m_List);

3.\和StatusBar中控件的添加:

方法⑴.只能在ToolBar里创建控件:首先,在ToolBar中创建一个Button,其ID为ID_TOOL_COMBO(我们要将创建的控件放在该Button的位置上).

其次,新创建一个类CMainToolBar,要从CToolBar继承(创建过程大概如下:选择工程/增加到工程/新的类;也可以选择工程的根,然后点击右键,选择新的类;或者CTL+W,选择增加类/新的类 --- 然后在class type里选择Generic Class,在Name栏里输入新类的名字,Base class里输入CToolBar),创建成功后在该类里创建要增加的控件的对象,如: CComboBox\

CStatic\CButton\Cedit\

然后在构造函数里初始化如: m_wndMyCombo.m_hWnd = NULL; m_wndCategory.m_hWnd = NULL; m_wndCategoryPath.m_hWnd = NULL; m_wndOpenButton.m_hWnd = NULL; m_wndEdit.m_hWnd = NULL;

接着在CMainframe的头文件里创建CMainToolBar的一个对象m_wndToolBar,最后在.cpp文件的OnCreate函数的最后实现如下: \

\ // 可定义在头文件当中 \ ComboBox

\

\找到指定的工具项

\\

\设置指定工具项的宽度并获取新的区域 120是宽度

\\\

\设置位置 \\\

\创建并显示控件

\CROLL|

\MBO)) \

\\\

\\

\填充内容\

\\\\

\选择默认项

\\

\获取到内容并MSGBOX显示出来 \

\

\\

其他控件都类似创建(只需要注意一下各自的Create函数的参数即可)。

方法⑵.这种方法创建不太容易控制:直接在CMainframe的头文件中创建要增加的控件的对象,如CButton\的对象m_wndAboutButton,然后创建CToolBar或者CstatusBar的对象,如:CstatusBar的对象_wndStatusBar;再增加几个函数如下: Protected:

virtual void RecalcLayout(BOOL bNotify = TRUE); \

接着在.cpp文件中将StatusBar的ID和OnViewStatusBar 函数绑定在一起,如下所示:BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) \ // {{AFX_MSG_MAP(CMainFrame)

\ ON_COMMAND(ID_VIEW_STATUS_BAR, OnViewStatusBar) \ ON_WM_CREATE() \ // }}AFX_MSG_MAP END_MESSAGE_MAP()

然后Create函数的最后(返回值之前)实现如下代码: CRect rc;

\\ WS_VISIBLE,rc,this,ID_APP_ABOUT));

\\\再在RecalcLayout函数里实现: CRect rc;

if (m_wndStatusBar.m_hWnd) {

\\\

\\

\

\

\\\

最后在OnViewStatusBar()里实现:

BOOL bShow = m_wndStatusBar.GetStyle() & WS_VISIBLE; \

SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE| (bShow ? SWP_SHOWWINDOW : SWP_HIDEWINDOW)); ToolBar中的创建与此相同,只需更改一下句柄即可。

4.\通过Control创建的控件,对其属性的动态控制:

在对话框类的头文件里创建所要改变属性的控件的对象,如要改变一个Button(其ID为IDC_MyButton)的属性,则需创建Cbutton的对象m_button。然后在.cpp中的DoDataExchange函数里将Button的ID和创建的对象绑定在一起: //{{AFX_DATA_MAP(CPrintDlg)

\\\

然后可以在该函数的最后进行初始化: \

到这里已经实现了改变属性。如果要动态改变其属性,可如下实现(通过两个Button的点击改变起属性):

// RadioAll Button的点击响应函数 void CPrintDlg::OnRadioAll() {

\\}

// RadioSelect Button的点击响应函数 void CPrintDlg::OnRadioSelect() {

\


vc++经典技巧总结.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《电动力学》知识点归纳及典型试题分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: