
vs10
文章平均质量分 64
drmcty
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
显示JPEG图像
JPEG(Joint Photograhic Experts Group)是一种高压缩比的图像格式,是目前最常用的图像格式之一。本节介绍如何在对话框中显示JPEG图像。分为以下几个步骤:(1)调用CreateFile()函数打开JPG文件,获取文件的大小,调用GlobalAlloc()函数分配图像占用的内存空间。(2)调用ReadFile()函数读取文件内容放置到内存中,并调用Cr转载 2014-03-02 20:42:13 · 2224 阅读 · 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 · 413 阅读 · 0 评论 -
只使程序只运行一次
方法一: 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 · 486 阅读 · 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 · 1317 阅读 · 1 评论 -
执行外部程序
第一种方法: 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 · 407 阅读 · 0 评论 -
bitmap文件显示
第一种方法: //CBitmap对象CBitmap bitMap;//设备环境类对象CDC dcMemory;//加载资源位图bitMap.LoadBitmap(IDB_BITMAP1);//创建内存设备环境dcMemory.CreateCompatibleDC(pDC);//把位图选进内存设备环境,并保存旧的GDI位图对象CBitmap转载 2012-11-06 11:46:12 · 509 阅读 · 0 评论 -
当程序到改变到指定大小时,禁止再改变起大小
添加 WM_GETMINMAXINFO 事件.void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI){// TODO: 在此添加消息处理程序代码和/或调用默认值lpMMI->ptMinTrackSize.x = 800; //窗口宽度由你设定lpMMI->ptMinTrackSize.y = 600; //窗口高度 由你设定转载 2012-11-07 09:08:37 · 305 阅读 · 0 评论 -
VC中实现单文档切换多视图的方法
先在CMainFrame中包含原来系统生成的视图类#include "****View.h"注:当你包含系统生成的视图类的头文件时,要把原视图中的GetDocument()函数删去,否则会报错然后在CMainFrame类中声名一个该类的实例以保存系统原来的视图protected: C****View m_pOldView;这时用类向导新建一个类,基类可以指定为翻译 2012-11-07 09:07:29 · 927 阅读 · 0 评论 -
检查获得的消息 当某个操作没有得到要求时,可以取消这次消息
注:CGamgeClientDlg 换成处理条消息的类pMsg->message中存放消息的类型pMsg->wParam存放消息的值,如健盘消息中你按下的按健值WM_KEYFIRST和WM_KEYLAST这个组合表示键盘的所有消息如不响应这条消息,则返回,不调用基类的函数BOOL CGameClientDlg::PreTranslateMessage(MSG* pMsg翻译 2012-11-07 09:08:10 · 524 阅读 · 0 评论 -
MFC中的CApp,CMainFrame,CDoc,CView
CMainFrame是CApp类的主程序窗口(如果是选MDI或SDI结构的话),也就是程序的一个框架。CApp中如无特殊的要求不用加什么代码,CMainFrame中也是根据需要,如按照微软提供的框架也不需要加什么代码。 CDocument一般和CView一起使用,这样的程序叫文档/视图结构。CDocument中加的代码主要是和你的文档内容有关的,如文档中信息(对象)等,转载 2012-11-07 12:54:40 · 685 阅读 · 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 · 732 阅读 · 0 评论 -
Windows GDI和GDI+区别(实例剖析)
1、概述 GDI在全称是Graphics Device Interface,即图形设备接口。是图形显示与实际物理设备之间的桥梁。GDI接口是基于函数,虽然使程序员省力不少,但是编程方式依然显得麻烦。例如显示一张位图,我们需要进行“创建位图,读取位图文件信息,启用场景设备,调色板变化“等一系列操作。然而有了GDI+,繁琐的步骤再次被简化。顾名思义,GDI+就是GDI的增强版,它是微软在Win转载 2012-11-11 20:44:57 · 1104 阅读 · 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 · 17451 阅读 · 0 评论 -
播放GIF动画
GIF文件是图形交换文件的格式,是由一组相隔指定间隔时间显示的图片组组成。使用GDI+可以播放GIF动画。为此,首先需要调用GetFrameDimensionsCount()函数来获取GIF动画中具有的帧数数目,并通过Image对象的GetPropertyItem()函数获取每帧图片之间的时间间隔。然后显示GIF文件,并设置当前有效的框架数据,根据获取的每帧的时间间隔,停顿一定的时间,继续转载 2014-03-02 19:08:38 · 1297 阅读 · 0 评论 -
系统托盘动态图标
通过定时器,可以实现系统托盘动态图标的效果。在程序启动时,首先设置图标列表,启动定时器,并设置托盘图标和托盘文字。定时器每次获取当前索引下的图标句柄,并调用Shell_NotifyIcon()函数设置托盘上的图标为获取的新图标,这样,看上去系统托盘上显示的是动态图标。代码如下:BOOL CMainFrame::SetSBImageList(int imageListID,int iMa转载 2014-03-02 19:06:10 · 1276 阅读 · 0 评论 -
VC设置视图背景颜色方法
设置视图背景颜色 对于VC++文档、视结构中的视图,从用户的角度来看,只是可以改变大小、位置的普通窗口,同其他基于Windows应用程序的窗口是一样的;从程序员的角度来看,视图并不是普通的窗口,而是从MFC库中CView类派生的类对象。像任何VC++对象一样,视图对象的行为由类的成员函数(数据成员)决定,包括派生类中应用程序定义的函数和从基类继承来的函数。提出问题 视图的背转载 2014-03-01 20:25:10 · 1765 阅读 · 0 评论 -
VC中为clistctrl右键弹出菜单
一、在资源编辑器中建立一个菜单资源 新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即为将要建立的弹出式菜单的内容。至于每一个菜单项的消息映射,和一般的菜单相同。 例如:新建弹出菜单IDR_POPMENU PopMenu-> Item1转载 2013-01-04 15:56:38 · 529 阅读 · 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 · 3839 阅读 · 0 评论 -
用AnimateWindow函数可以实现多种窗口的多种动态效果
用AnimateWindow函数可以实现多种窗口的多种动态效果先对该函数做一个简单介绍。函数原型:BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags)。函数功能: 该函数能在显示与隐藏窗口时产生两种特殊类型的动画效果,即滚动动画和滑动动画。参数含义:hWnd 指定产生动画的窗口的句柄。dwTime 指明动画持续的时间(转载 2012-11-21 20:27:59 · 9206 阅读 · 0 评论 -
在MFC中怎样将窗口最小化到托盘并恢复
所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。一 、原理1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。二、代码实现1、自定义消息WM_SHOWTASK: #define WM_转载 2012-12-04 13:14:24 · 588 阅读 · 0 评论 -
消息传递
首先你要理解MFC的命令传送机制是通过框架窗口的OnCmdMsg函数实现的,它将诸如菜单、工具栏等命令按以下顺序进行传送:活动视图、文档、文档模板、框架窗口、应用程序对象,如果其中一级具有该命令的处理,则传送在此终止。因为你的程序有两个视图,所以非活动视图将接收不到传送的命令,所以要自定义命令传送过程:覆盖框架窗口的OnCmdMsg函数,先调用缺省的OnCmdMsg函数(即上面的传送过转载 2012-11-10 20:51:19 · 492 阅读 · 0 评论 -
GetWindowLong函数介绍
函数原型:LONG GetWindowLong( HWND hWnd,int nIndex)参数:hWnd:指定窗口的句柄nIndex:需要获得的信息的类型值功能nIndex取值如下:GWL_EXSTYLE 得到扩展的窗口风格GWL_STYLE 得到窗口风格GWL_WNDPROC 得到窗口回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来转载 2012-11-07 09:04:51 · 1119 阅读 · 0 评论 -
建立CDockablePane
////要显示的对话框和CDockablePane的派生类的头文件/////#pragma once// CTopDlgBar 对话框class CTopDlgBar : public CDialog{DECLARE_DYNAMIC(CTopDlgBar)public:CTopDlgBar(CWnd* pParent = NULL); // 标准构造函数转载 2012-11-07 13:04:12 · 663 阅读 · 0 评论 -
EndDialog 与 DestroyWindow 的区别
(1) EndDialog(-1);关闭模态对话框,并且将参数作为父对话框调用的返回值。(2) DestroyWindow(); ::PostQuitMessage(0);DestroyWindow 关闭非模态对话框。退出消息循环,真正结束进程。有不少程序窗口关闭,但是不等于退出运行。转载 2012-11-06 11:47:24 · 639 阅读 · 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 · 470 阅读 · 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 · 432 阅读 · 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 · 4428 阅读 · 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 · 637 阅读 · 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 · 527 阅读 · 0 评论 -
TEXTMETRIC 结构
函数:GetTextMetrics();可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示:typedef struct tagTEXTMETRIC { // tmLONG tmHeight; //字符高度LONG tmAscent; //字符上部高度(基线以上)LONG tmDescent; //字符下部高度(基线以下转载 2012-11-06 11:42:48 · 522 阅读 · 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 · 911 阅读 · 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 · 781 阅读 · 0 评论 -
HRESULT返回值说明
HRESULT返回值说明 如果函数正常执行,则返回 S_OK,同时真正的函数运行结果则通过参数指针返回。如果遇到了异常情况,则COM系统经过判断,会返回相应的错误值。HRESULT 值 含义S_OK 0x00000000 成功S_FALSE 0x00000001 函数成功执行完成,但返回时出现错误E_INVALIDARG 0x80070057 参数有错误E_OUTO转载 2012-11-06 11:47:52 · 450 阅读 · 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 · 1293 阅读 · 0 评论 -
VC++ 获取窗体句柄,并发送键盘消息(这种方法也可以打开某些应用程序)
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由:CWnd *pwnd = FindWindow(_T(“ExploreWClass”),NULL); //希望找到资源管理器HWND hwnd = pwnd-> m_hwnd; //得到它的HWND这样的代码当开始得到的pwnd转载 2012-11-07 09:06:57 · 1221 阅读 · 0 评论 -
VC++基础 使用全局变量控制线程运行
全局变量的定义:volatile int SpeedControl;//定义全局变量Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。线程体:UINT ThreadFunc(LPVOID lpParam)转载 2012-11-07 09:05:43 · 1151 阅读 · 0 评论 -
CallWindowProc与setwindowlong用法
该函数CallWindowProc将消息信息传送给指定的窗口过程。函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam);参数:lpPrevWndFunc:参数主要是指向你要调用的函数句柄hWnd:指向接收消息的窗口过程的句柄。M转载 2012-11-07 09:04:04 · 2533 阅读 · 0 评论 -
静态成员(静态成员函数,静态数据成员)的特性
态成员的特性:不管这个类创建了多少个对象,而其静态成员只有一个拷贝(副本),这个拷贝被所有属于这个类的对象共享。静态数据成员定义格式:static 数据类型 静态数据成员名;初始化格式:数据类型 类名::静态数据成员名 = 初始化值;公有静态数据成员的访问格式:1. 类名::静态数据成员名2. 对象.静态数据成员名3. 对象指针->静态数据成员名转载 2012-11-06 11:51:16 · 2383 阅读 · 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 · 571 阅读 · 0 评论 -
vc6 使用richedt2.dll的两种方法
richedit20a是richedit的升级,因为老版本的richedit 有种种bug,如半个汉字之类的问题,微软已经在richedit2.o中解决了问题.要在程序中使用richedit2.0 ,可以按照一下步骤实施:对话框中放置一个custom控件更改类名属性(class)为RichEdit20A,InitInstance中添加:LoadLibrary("riched20转载 2012-11-06 11:50:16 · 367 阅读 · 0 评论