vs10
文章平均质量分 64
drmcty
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows GDI和GDI+区别(实例剖析)
1、概述 GDI在全称是Graphics Device Interface,即图形设备接口。是图形显示与实际物理设备之间的桥梁。GDI接口是基于函数,虽然使程序员省力不少,但是编程方式依然显得麻烦。例如显示一张位图,我们需要进行“创建位图,读取位图文件信息,启用场景设备,调色板变化“等一系列操作。然而有了GDI+,繁琐的步骤再次被简化。顾名思义,GDI+就是GDI的增强版,它是微软在Win转载 2012-11-11 20:44:57 · 1224 阅读 · 0 评论 -
MFC中的CApp,CMainFrame,CDoc,CView
CMainFrame是CApp类的主程序窗口(如果是选MDI或SDI结构的话),也就是程序的一个框架。CApp中如无特殊的要求不用加什么代码,CMainFrame中也是根据需要,如按照微软提供的框架也不需要加什么代码。 CDocument一般和CView一起使用,这样的程序叫文档/视图结构。CDocument中加的代码主要是和你的文档内容有关的,如文档中信息(对象)等,转载 2012-11-07 12:54:40 · 742 阅读 · 0 评论 -
检查获得的消息 当某个操作没有得到要求时,可以取消这次消息
注:CGamgeClientDlg 换成处理条消息的类pMsg->message中存放消息的类型pMsg->wParam存放消息的值,如健盘消息中你按下的按健值WM_KEYFIRST和WM_KEYLAST这个组合表示键盘的所有消息如不响应这条消息,则返回,不调用基类的函数BOOL CGameClientDlg::PreTranslateMessage(MSG* pMsg翻译 2012-11-07 09:08:10 · 551 阅读 · 0 评论 -
VC中实现单文档切换多视图的方法
先在CMainFrame中包含原来系统生成的视图类#include "****View.h"注:当你包含系统生成的视图类的头文件时,要把原视图中的GetDocument()函数删去,否则会报错然后在CMainFrame类中声名一个该类的实例以保存系统原来的视图protected: C****View m_pOldView;这时用类向导新建一个类,基类可以指定为翻译 2012-11-07 09:07:29 · 971 阅读 · 0 评论 -
当程序到改变到指定大小时,禁止再改变起大小
添加 WM_GETMINMAXINFO 事件.void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI){// TODO: 在此添加消息处理程序代码和/或调用默认值lpMMI->ptMinTrackSize.x = 800; //窗口宽度由你设定lpMMI->ptMinTrackSize.y = 600; //窗口高度 由你设定转载 2012-11-07 09:08:37 · 332 阅读 · 0 评论 -
bitmap文件显示
第一种方法: //CBitmap对象CBitmap bitMap;//设备环境类对象CDC dcMemory;//加载资源位图bitMap.LoadBitmap(IDB_BITMAP1);//创建内存设备环境dcMemory.CreateCompatibleDC(pDC);//把位图选进内存设备环境,并保存旧的GDI位图对象CBitmap转载 2012-11-06 11:46:12 · 548 阅读 · 0 评论 -
执行外部程序
第一种方法: STARTUPINFO si; PROCESS_INFORMATION pi; memset(&si, 0, sizeof(STARTUPINFO)); memset(&pi, 0, sizeof(PROCESS_INFORMATION)); si.cb = sizeof(STARTUPINFO); si.wShowWindow = SW_SHOW;转载 2012-11-07 21:10:40 · 439 阅读 · 0 评论 -
显示Bitmap并让适应屏幕改变大小显示
CPaintDC dc(this);CRect rcClient;CDC MemDC;CBitmap* pOldBitmap;BITMAP bm;int nStretchMode;GetClientRect(&rcClient);bm.GetBitmap(&bm);MemDC.CreateCompatibleDC(&dc);pOldBitmap =转载 2012-11-07 18:07:01 · 1370 阅读 · 1 评论 -
只使程序只运行一次
方法一: CWnd *pWndPrev, *pWndChild;if(pWndPrev=CWnd::FindWindow("#32770","DMTOOL")) //见说明1{ if(pWndPrev->IsIconic()) { pWndPrev->ShowWindow(SW_RESTORE); pWndPrev->SetForegr转载 2012-11-07 09:09:12 · 529 阅读 · 0 评论 -
如何调用系统对话框
CString pszDllName="shell32.dll";HINSTANCE hLib = ::LoadLibrary(pszDllName);char p[256];HICON ico;//这儿我感觉参数应该是LPCWSTR, 但是网上说得是LPCTSTRtypedef void (__stdcall *pRunFileDlg)(HWND,HICON, LPCTSTR转载 2012-11-09 21:13:39 · 450 阅读 · 0 评论 -
在VC中使用GDI+
GDI+可应用于二维向量图象,栅格图象及排版,是为C/C++程序员而设计的表现为C++类而存在的接口,能用于一切基于Windows的应用中。作为GDI的后继者,GDI+在GDI中增加了新功能,如文本的反锯齿,渐变笔刷,Alpha溶合;也优化了GDI许多已有的功能。此外,GDI+改变了编程模式,使其更灵活及易用。GDI+并不限于在.Net中存在,实际上它由Windows XP或Windows S转载 2012-11-11 20:19:12 · 796 阅读 · 0 评论 -
GetWindowLong函数介绍
函数原型:LONG GetWindowLong( HWND hWnd,int nIndex)参数:hWnd:指定窗口的句柄nIndex:需要获得的信息的类型值功能nIndex取值如下:GWL_EXSTYLE 得到扩展的窗口风格GWL_STYLE 得到窗口风格GWL_WNDPROC 得到窗口回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来转载 2012-11-07 09:04:51 · 1188 阅读 · 0 评论 -
消息传递
首先你要理解MFC的命令传送机制是通过框架窗口的OnCmdMsg函数实现的,它将诸如菜单、工具栏等命令按以下顺序进行传送:活动视图、文档、文档模板、框架窗口、应用程序对象,如果其中一级具有该命令的处理,则传送在此终止。因为你的程序有两个视图,所以非活动视图将接收不到传送的命令,所以要自定义命令传送过程:覆盖框架窗口的OnCmdMsg函数,先调用缺省的OnCmdMsg函数(即上面的传送过转载 2012-11-10 20:51:19 · 520 阅读 · 0 评论 -
在MFC中怎样将窗口最小化到托盘并恢复
所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。一 、原理1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。二、代码实现1、自定义消息WM_SHOWTASK: #define WM_转载 2012-12-04 13:14:24 · 646 阅读 · 0 评论 -
用AnimateWindow函数可以实现多种窗口的多种动态效果
用AnimateWindow函数可以实现多种窗口的多种动态效果先对该函数做一个简单介绍。函数原型:BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags)。函数功能: 该函数能在显示与隐藏窗口时产生两种特殊类型的动画效果,即滚动动画和滑动动画。参数含义:hWnd 指定产生动画的窗口的句柄。dwTime 指明动画持续的时间(转载 2012-11-21 20:27:59 · 9315 阅读 · 0 评论 -
用ADO常用的连接方式和访问加密的ACCESS数据库
在stdafx.h中添加一句指令:#import "c:\program files\common files\system\ado\msado15.dll" \no_namespace \rename ("EOF", "adoEOF")COM库的初始化在CWinApp::InitInstance()的重载函数中添加:AfxOleInit(),代码如下:BOOL C原创 2012-11-06 11:40:08 · 3945 阅读 · 0 评论 -
VC中为clistctrl右键弹出菜单
一、在资源编辑器中建立一个菜单资源 新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即为将要建立的弹出式菜单的内容。至于每一个菜单项的消息映射,和一般的菜单相同。 例如:新建弹出菜单IDR_POPMENU PopMenu-> Item1转载 2013-01-04 15:56:38 · 571 阅读 · 0 评论 -
VC设置视图背景颜色方法
设置视图背景颜色 对于VC++文档、视结构中的视图,从用户的角度来看,只是可以改变大小、位置的普通窗口,同其他基于Windows应用程序的窗口是一样的;从程序员的角度来看,视图并不是普通的窗口,而是从MFC库中CView类派生的类对象。像任何VC++对象一样,视图对象的行为由类的成员函数(数据成员)决定,包括派生类中应用程序定义的函数和从基类继承来的函数。提出问题 视图的背转载 2014-03-01 20:25:10 · 1815 阅读 · 0 评论 -
系统托盘动态图标
通过定时器,可以实现系统托盘动态图标的效果。在程序启动时,首先设置图标列表,启动定时器,并设置托盘图标和托盘文字。定时器每次获取当前索引下的图标句柄,并调用Shell_NotifyIcon()函数设置托盘上的图标为获取的新图标,这样,看上去系统托盘上显示的是动态图标。代码如下:BOOL CMainFrame::SetSBImageList(int imageListID,int iMa转载 2014-03-02 19:06:10 · 1359 阅读 · 0 评论 -
播放GIF动画
GIF文件是图形交换文件的格式,是由一组相隔指定间隔时间显示的图片组组成。使用GDI+可以播放GIF动画。为此,首先需要调用GetFrameDimensionsCount()函数来获取GIF动画中具有的帧数数目,并通过Image对象的GetPropertyItem()函数获取每帧图片之间的时间间隔。然后显示GIF文件,并设置当前有效的框架数据,根据获取的每帧的时间间隔,停顿一定的时间,继续转载 2014-03-02 19:08:38 · 1380 阅读 · 0 评论 -
MFC常规DLL的创建与使用实例
MFC常规DLL的创建与使用实例22.2节中介绍了非MFC DLL的创建和使用实例,与之不同的是,本节介绍内部使用MFC,但是提供的访问接口不支持DLL而是标准的C接口的常规DLL。除了介绍基本概念和创建方法外,本节还介绍MFC常规DLL的创建实例和调用方法。22.3.1 基本概念MFC常规DLL,从字面上理解有两点。一是MFC的,这是指DLL内部使用MFC转载 2014-03-02 21:02:56 · 17639 阅读 · 0 评论 -
显示JPEG图像
JPEG(Joint Photograhic Experts Group)是一种高压缩比的图像格式,是目前最常用的图像格式之一。本节介绍如何在对话框中显示JPEG图像。分为以下几个步骤:(1)调用CreateFile()函数打开JPG文件,获取文件的大小,调用GlobalAlloc()函数分配图像占用的内存空间。(2)调用ReadFile()函数读取文件内容放置到内存中,并调用Cr转载 2014-03-02 20:42:13 · 2311 阅读 · 0 评论 -
strtok CString 分割字符串
#include#includeint main (){char str[] ="- This, a sample string.";char * pch;printf ("Splitting string \"%s\" into tokens:\n",str);pch = strtok (str," ,.-");while (pch != NULL){转载 2012-11-06 11:48:21 · 1324 阅读 · 0 评论 -
strftime函数将时间格式化
我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_t strftime(char *strDest,size_t maxsize,const char *format,const struct tm *timeptr);我们可以根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中,最多向strD转载 2012-11-06 11:41:41 · 817 阅读 · 0 评论 -
COLORREF与RGB
RGB(r,g,b)是一个宏实际上它做得事是((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))rgb(r,g,b) = 一个整型值 = r + g * 256 + b*255*256COLORREF 是 一 个 32-bit 整 型 数 值,它 代 表 了一 种 颜 色。你 可以 使 用 RGB 函 数 来 初始化COLORREF它的定义转载 2012-11-06 11:42:13 · 999 阅读 · 0 评论 -
TEXTMETRIC 结构
函数:GetTextMetrics();可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示:typedef struct tagTEXTMETRIC { // tmLONG tmHeight; //字符高度LONG tmAscent; //字符上部高度(基线以上)LONG tmDescent; //字符下部高度(基线以下转载 2012-11-06 11:42:48 · 554 阅读 · 0 评论 -
C语言动态分配数组程序实现
#include "stdio.h"#include#include#define NULL 0void **darray_new(int row, int col, int size) //size是每个分配元素内存的空间{ void **arr; arr = (void **) malloc(sizeof(void *) * row + si转载 2012-11-06 11:43:31 · 560 阅读 · 0 评论 -
GetMessage PeekMessage WaitMessage简介
消息的接收主要有3个函数:GetMessage、PeekMessage、WaitMessage。 GetMessage原型如下: BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax); 该函数用来获取与hWnd参数所指定的窗口相关的且wMsgFilterMin和wMsg转载 2012-11-06 11:44:05 · 706 阅读 · 0 评论 -
SetWindowPos详解
函数名: SetWindowPos头文件: winuser.h函数原型: BOOL SetWindowPos ( HWND hWnd, //窗口句柄 HWND hWndInsertAfter, //排列顺序的句柄 int X, //水平坐标 int Y, //垂直坐标 int cx, //宽 int cy, //高 UI转载 2012-11-06 11:44:40 · 4522 阅读 · 0 评论 -
激活灰显按钮
long Style;Style = ::GetWindowLong(hWnd,GWL_STYLE); //获得Style值Style ^= WS_DISABLED; //去掉WS_DISABLED 你也可以用|=把属性加回去::SetWindowLong(hWnd,GWL_STYLE,Style); //设置回去::SetWindowPos(hWnd,0,0,0,0,SWP_FR转载 2012-11-06 11:45:13 · 465 阅读 · 0 评论 -
vc封装dll类的简单方法
如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。1、制作dll利用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具体定义。与一般写类的定义不同,在exp.h中需要写成class __declsp转载 2012-11-06 11:45:43 · 502 阅读 · 0 评论 -
EndDialog 与 DestroyWindow 的区别
(1) EndDialog(-1);关闭模态对话框,并且将参数作为父对话框调用的返回值。(2) DestroyWindow(); ::PostQuitMessage(0);DestroyWindow 关闭非模态对话框。退出消息循环,真正结束进程。有不少程序窗口关闭,但是不等于退出运行。转载 2012-11-06 11:47:24 · 677 阅读 · 0 评论 -
HRESULT返回值说明
HRESULT返回值说明 如果函数正常执行,则返回 S_OK,同时真正的函数运行结果则通过参数指针返回。如果遇到了异常情况,则COM系统经过判断,会返回相应的错误值。HRESULT 值 含义S_OK 0x00000000 成功S_FALSE 0x00000001 函数成功执行完成,但返回时出现错误E_INVALIDARG 0x80070057 参数有错误E_OUTO转载 2012-11-06 11:47:52 · 495 阅读 · 0 评论 -
在MFC中添加控件有两种方法CMonthCalCtrl
阅读MSDN2003,我们可以看到,MFC提供了18种通用控件,具体是哪18种,我不详细列出,可以在MSDN2003的MSDN \ Visual Studio .NET \ Visual C++ \ 添加功能 \ MFC \ 用户界面 \ 控件 \ 中看到。其中每一个控件都对应了一个MFC类,这些类的详细说明可以在MSDN2003 的MSDN \ Visual Studio .NET \ Visu转载 2012-11-06 11:41:04 · 2620 阅读 · 0 评论 -
CreateDIBSection及位图结构
CreateDIBSection该函数创建应用程序可以直接写入的、与设备无关的位图(DIB)。该函数返回一个位图句柄。原型:HBITMAP CreateDIBSection(HDC hdc,CONST BITMAPINFO * pbmi,UINT iUsage,VOID * ppvBits,HANDLE hSection,DWORD dwOffset);转载 2012-11-06 11:48:51 · 836 阅读 · 0 评论 -
pdc 与 hdc 转换
1.CDC *pDC和HDC hdc有什么不同,类似的有CWnd *pWnd和HWndpDC是类指针HDC是windows句柄通过pDC获得hdc:HDC hdc=pDC->GetSafeHdc();通过hdc获得pDC:CDC *pDC=new CDC;pDC->Attach(hdc);2.hDC和CDC有本质区别HDC是WINDOWS的一种数转载 2012-11-06 11:49:19 · 963 阅读 · 0 评论 -
自定义消息
在头文件里#define WM_MYMSG WM_USER+5 //自定义一个消息afx_msg void OnMyMessage(WPARAM wParam, LPARAM lParam); //自定义消息的处理函数声明在.cpp文件里ON_MESSAGE(WM_MYMSG, OnMyMessage)//利用ON_MESSAGE()宏在自定义消息与其处理函数间建立映射转载 2012-11-06 11:49:47 · 395 阅读 · 0 评论 -
vc6 使用richedt2.dll的两种方法
richedit20a是richedit的升级,因为老版本的richedit 有种种bug,如半个汉字之类的问题,微软已经在richedit2.o中解决了问题.要在程序中使用richedit2.0 ,可以按照一下步骤实施:对话框中放置一个custom控件更改类名属性(class)为RichEdit20A,InitInstance中添加:LoadLibrary("riched20转载 2012-11-06 11:50:16 · 398 阅读 · 0 评论 -
怎样获取屏幕分辨率
1. Difference between resolution and DPI:Resolution: 显示器width*height有多大DPI: 每 Inch 显示多少个点(dot)2. How to get resolution:a)unsigned int w = ::GetSystemMetrics(SM_CXSCREEN);unsigned int h =转载 2012-11-06 11:50:50 · 651 阅读 · 0 评论 -
静态成员(静态成员函数,静态数据成员)的特性
态成员的特性:不管这个类创建了多少个对象,而其静态成员只有一个拷贝(副本),这个拷贝被所有属于这个类的对象共享。静态数据成员定义格式:static 数据类型 静态数据成员名;初始化格式:数据类型 类名::静态数据成员名 = 初始化值;公有静态数据成员的访问格式:1. 类名::静态数据成员名2. 对象.静态数据成员名3. 对象指针->静态数据成员名转载 2012-11-06 11:51:16 · 2454 阅读 · 0 评论
分享