
MFC
文章平均质量分 68
tmljs1988
这个作者很懒,什么都没留下…
展开
-
MFC 位图 按钮
1.可新建一个类ImageButton(继承自CButton),并设置其风格为自绘: ModifyStyle(0,BS_OWNERDRAW);ImageButton.h:class ImageButton : public CButton{private:public: ImageButton(); // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(ImageButton) protected: virtual void原创 2010-07-23 16:17:00 · 1364 阅读 · 0 评论 -
MFC MDI 窗口函数执行顺序
(1)MDI窗口初始化时创建顺序(默认打开一个新文档): AddDocTemplate(pDocTemplate); CMainFrame* pMainFrame = new CMainFrame; CMainFrame::PreCreateWindow() 两次, CMainFrame::OnCreate CMFC_frameDoc()构造函数, CChildFrame()构造函数, CChildFrame::PreCreateWindow 三次, , CMFC_frameView()构造函数, CMFC原创 2011-03-11 21:45:00 · 3654 阅读 · 0 评论 -
工具栏 放在任意位置,且不能移动(如有分割条则不行)
<br />下面代码可以让工具栏放在任意位置,且位置固定不变,不能移动(前提是没有分割条,否则点击分割条,<br />工具栏仍然能移动):<br />只需把工具栏部分(就是m_wndToolBar.m_pDockBar的矩形区域)裁剪出来即可:<br />if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP <br /> | CBRS_GRIPPER | CBRS_TOOLTIPS |原创 2011-03-09 20:02:00 · 2700 阅读 · 0 评论 -
拦截 浮动工具栏的标题双击事件
<br />在MDI中,工具栏一般在主框架CMainFrame中,工具栏是主框架CMainFrame的子窗口,所以可以在主框架CMainFrame中处理子窗口(工具栏)的事件:<br />BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)<br />{<br /> // TODO: 在此添加专用代码和/或调用基类<br /> if(pMsg->message == WM_NCLBUTTONDBLCLK) // 非client区域的双击消息<br /> {<br /原创 2011-03-05 16:04:00 · 1977 阅读 · 0 评论 -
MFC的对话框中创建位图按钮
1.可新建一个类ImageButton(继承自CButton),并设置其风格为自绘: ModifyStyle(0,BS_OWNERDRAW);ImageButton.h:class ImageButton : public CButton{private:public: ImageButton(); // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(ImageButton) protected: virtual void原创 2011-03-04 10:30:00 · 3819 阅读 · 1 评论 -
去掉MFC的MDI程序中的浮动工具条上标题栏中的“关闭”按钮
<br />去掉MFC的MDI程序中的浮动工具条上标题栏中的“关闭”按钮:<br /><br /><br /><br />由于工具栏也是一个对话框窗口,我们可以利用 CControlBar 基类的m_pDockBar成员来调用GetParent()以获取工具条的父窗口。从而改变父窗口的式样——屏蔽系统菜单——来达到我们的目的——去掉“关闭”按钮。<br />(摘自http://www.vckbase.com/vckbase/default.aspx)<br /> <br />(1)如果想在视图CMFC_fr原创 2011-03-03 14:46:00 · 3798 阅读 · 0 评论 -
浮动状态栏 FloatControlBar()
<br />浮动状态栏 FloatControlBar( &m_wndToolBar, pt):<br /> CToolBar m_wndToolBar;<br /><br />m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT/*左停靠也可不要*/<br /> | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||<br原创 2011-03-03 09:24:00 · 2984 阅读 · 0 评论 -
MFC 加载 光标
<br /> <br />(1)加载资源ID,可以是系统自带的(如ID_CROSS),或者是程序员自己加入的光标ID:<br />HCURSOR hCursor = ::LoadCursor(NULL,MAKEINTRESOURCE(IDC_CROSS)); <br />SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)hCursor ); <br />//或者指针::SetClassLongPtr(this->GetSafeHwnd(),GCL_HCURSOR,(原创 2011-03-03 10:15:00 · 4746 阅读 · 1 评论 -
对话框和MDI中动态创建按钮CButton,并响应事件
<br />一.对话框中动态创建按钮CButton:<br />(1)在对话框(如CAboutDlg)的类中加一个CButton数据成员 <br />class CAboutDlg : public CDialog<br />{ ......<br /> ::CButton m_btn;//按钮<br />}<br />(2)在对话框CAboutDlg)的初始化函数中创建按钮对象:<br />BOOL CAboutDlg::OnInitDialog()<br />{<br /> if ( !m_btn.Cr原创 2011-03-02 21:24:00 · 3965 阅读 · 0 评论 -
VS生成的最简WIN32窗口程序
<br />// win32_basic.cpp : 定义应用程序的入口点。<br />//<br /> <br />#include"stdafx.h"<br />#include"win32_basic.h"<br /> <br />#define MAX_LOADSTRING 100<br /> <br />// 全局变量:<br />HINSTANCE hInst; // 当前实例<br />TCHAR szTitle[MAX_LOADSTRING]原创 2011-03-01 14:05:00 · 2039 阅读 · 0 评论 -
MDI中MainFrame与ChildFrame的关系
(1)没有子窗口ChildFrame(包括视图)时,显示的是主窗口MainFrame的菜单及工具栏.(2)如果用户新建了一个视图(如打开一个文件),则显示的是子窗口ChildFrame的菜单及工具栏,而主窗口MainFrame的菜单及工具栏被子窗口ChildFrame覆盖了.(3)主窗口有菜单,工具栏,一般似乎没有事件处理(如OnMouseDown等). 而子窗口一般有事件处理,如OnMouseDown()等(可在view中响应,因为ChildFrame与view已绑定在一起了,形成"三口组").而一个最简原创 2011-03-01 14:47:00 · 7686 阅读 · 0 评论 -
MFC 类继承关系图
<br />图片太大,可保存下来或拖动图片再开一个新网页.转载 2011-03-01 15:06:00 · 7133 阅读 · 2 评论 -
windows程序设计 11章的about3 问题 模式对话框 子窗口
(1)没有按下菜单时,WndProc()执行,而AboutDlgProc()和EllipPushWndProc()不执行。(2)按下菜单时,WndProc()中执行:DialogBox (hInstance, TEXT ("AboutBox"), hwnd, AboutDlgProc) ;创建模式对话框About,其AboutDlgProc()执行, 此时*.rc里的 CONTROL "OK",IDMM,"EllipPush",WS_GROUP | WS_TABSTOP,73,79,32,14表明对话框A原创 2011-02-28 16:04:00 · 1114 阅读 · 0 评论 -
ScrollWindow滚动窗口,有动态按钮,且主窗口很大,主窗口有滚动条
<br />(1)首先创建主窗口时,在其属性中加上:WS_HSCROLL:<br />hwnd = CreateWindow (szAppName, TEXT ("Button Look"),<br /> WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,//WS_HSCROLL表示有滚动条<br /> CW_USEDEFAULT, CW_USEDEFAULT,<br />原创 2011-02-27 18:00:00 · 2418 阅读 · 0 评论 -
MFC MDI 全屏
1.在MainFrame.h的CMainFrame类中添加数据成员及成员函数:class CMainFrame : public CMDIFrameWnd{ ......//数据成员 RECT m_rcOldWnd;//旧的窗口位置及大小 BOOL m_bFullScreen; //全屏显示标志//成员函数 void EnterFullScreen();//全屏 void QuitFullScreen();//退出全屏}2.在MainFrame.cpp中实现函数:先在构造函数中初始化m_bFu原创 2010-07-26 11:07:00 · 2382 阅读 · 1 评论 -
在win32的窗口程序中加入控制台console窗口
在win32的窗口程序中加入控制台console窗口:(1)头文件:#include #include #include using namespace std;(2)redirectIOToConsole()函数://使用控制台的输出void redirectIOToConso原创 2011-07-14 10:45:22 · 2604 阅读 · 0 评论