mfc
zhangtaohbwh
这个作者很懒,什么都没留下…
展开
-
一个典型的双缓冲的例子
CPaintDC dc(this);CRect rtClient;GetClientRect(rtClient);CDC memDC;memDC.CreateCompatibleDC(&dc);HBITMAP hBmp = CreateCompatibleBitmap(dc.GetSafeHdc(),rtClient.Width(),rtClient.Height())原创 2015-07-19 16:34:06 · 697 阅读 · 0 评论 -
vs中由低版本转换为高版本出现如下错误的解决办法
报错:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.打开stdafx.h文件找到如下代码:#ifndef WINVER // All原创 2015-08-20 21:48:30 · 928 阅读 · 0 评论 -
MFC中持久化的实现
在单文档中实现自定义类的持久化,按照如下步骤完成:假设我要将自定义类CGraph持久化1、继承CObject类2、在类的定义中写下如下语句DECLARE_SERIAL(CGraph)3、在类cpp文件中写下如下语句IMPLEMENT_SERIAL(CGraph, CObject, 1)4、为CGraph写一个如下的构造函数(即默认构造函数)CGraph();原创 2015-08-23 21:55:00 · 1254 阅读 · 0 评论 -
截取屏幕图
void CtestDlg::OnBnClickedBtnOk(){ HWND hwnd = ::GetDesktopWindow(); RECT rect; ::GetClientRect(hwnd,&rect); CClientDC *pDC=new CClientDC(this); CBitmap Bitmap; HBITMAP hBitmap=CopyScreenToBit原创 2015-07-04 17:40:08 · 336 阅读 · 0 评论 -
vs2010中导入OFFICE库文件的类 excel.h,excel.cpp后出现编译错误的解决办法
错误内容为:错误 1 error C2011: “Font”: “struct”类型重定义 错误 2 error C2011: “Picture”: “struct”类型重定义错误 3 error C2027: 使用了未定义类型“Font” 错误 4 error C3861: “InvokeHelper”: 找不到标识符 错误 5 error C2027: 使用了未定义类型“F原创 2015-08-21 23:59:27 · 1611 阅读 · 0 评论 -
MFC自制菜单(既绘制菜单的外观)
建立自制菜单,按如下三步完成:第一:为菜单项添加MF_OWNERDRAW样式第二:实现WM_MEASUREITEM消息处理(目的:设置菜单项的宽度和高度)第三:实现WM_DRAWITEM消息处理(目的:绘制菜单项)提示:在stdafx.h文件的#include 前面添加如下宏(目的:使用系统预定义的位图)#define OEMRESOURCE本文要绘制菜单的菜原创 2015-08-15 16:09:48 · 1135 阅读 · 0 评论 -
MFC对话框程序不能响应WM_CHAR消息的解决办法
重载PreTranslateMessage虚函数,代码如下:BOOL CaDlg::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 if (WM_KEYDOWN == pMsg->message || WM_CHAR == pMsg->message) { pMsg->hwnd = m_hWnd; return原创 2015-08-10 20:34:43 · 898 阅读 · 0 评论 -
GetWindowRect与GetClientRect 的区别
GetWindowRect() 得到的是在屏幕坐标系下的RECT;(即以屏幕左上角为原点) GetClientRect() 得到的是在客户区坐标系下的RECT; (即以所在窗口左上角为原点)GetWindowRect()取的是整个窗口的矩形; GetClientRect()取的仅是客户区的矩形,也就是说不包括标题栏,外框等;GetWindowRect() 函数获得的是窗口在原创 2015-06-30 21:02:22 · 359 阅读 · 0 评论 -
MFC动态创建菜单
CMenu menuFile; menuFile.CreatePopupMenu(); menuFile.AppendMenu(MF_STRING, ID_MENU_FILE_OPEN, _T("Open")); menuFile.AppendMenu(MF_STRING, ID_MENU_FILE_NEW, _T("New")); menuFile.AppendMenu(MF_STRIN原创 2015-08-15 00:58:44 · 903 阅读 · 0 评论 -
MFC修改菜单
添加菜单 CMenu *pMenu = GetMenu()->GetSubMenu(1)->GetSubMenu(2); if (pMenu) { pMenu->AppendMenu(MF_STRING, 10009, _T("Java程序设计")); UINT uCount = pMenu->GetMenuItemCount(); CMenu menuJavaScript;原创 2015-08-16 21:23:15 · 852 阅读 · 0 评论 -
位图显示
读位图资源并显示//1、准备设备dc CClientDC *pDC = new CClientDC(this); //2、准备内存dc CDC memDC; memDC.CreateCompatibleDC(pDC); //3、加载资源位图 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); //4、将资源位图选进内存dc HGDIOBJ hO原创 2015-07-04 00:24:13 · 393 阅读 · 0 评论 -
将CString输出到控制台的方法
CString str = _T("OnPaint");_ftprintf(stdout,str);原创 2015-08-17 16:55:10 · 1086 阅读 · 0 评论 -
MFC程序使用控制台
初始化控制台 // 开辟控制台 AllocConsole(); // 设置控制台窗口标题 SetConsoleTitle(_T("测试窗口")); // 重定向输出 freopen("CONOUT$","w",stdout); // 申请读 freopen( "CONIN$", "r+t", stdin );释放控制台 // 释放控制台 FreeConsole();原创 2015-08-10 22:52:21 · 367 阅读 · 0 评论 -
单文档的资源试图的字符串表中的IDR_MAINFRAME标示的七个字串的含义
1、主窗口标题栏文本2、缺省文档名称3、文档类型名称4、文档类型描述符5、文档缺省扩展名6、文件类型(由RegisterShellFileTypes向注册表注册文件类型,该字符串会被写入注册表)如果没有用RegisterShellFileTypes函数向注册表注册文件类型,那么是无法通过双击文件打开该文件的,除非通过其他方式向注册表注册了文件类型7、文件类型名称(存储在原创 2015-08-23 21:22:40 · 457 阅读 · 0 评论 -
菜单状态更新
1、在ON_COMMAND消息处理函数中更新假设存在如下下个菜单的消息映射宏: ON_COMMAND(ID_COLOR_RED, OnColor) ON_COMMAND(ID_COLOR_GREEN, OnColor) ON_COMMAND(ID_COLOR_BLUE, OnColor)消息处理函数为:void CtestDlg::OnColor(){ // 更新颜色菜单栏原创 2015-08-15 01:13:56 · 888 阅读 · 0 评论