
VC基础知识温习
海浪
生活要有目标
展开
-
windows 中的映射模式
1、映射模式的设置可以通过SetMapMode 和GetMapMode 两个函数来调用; int SetMapMode( HDC hdc, // handle of device context int fnMapMode // new mapping mode 映射模式);设置当前的设备环境的映射模式int GetMapMode( HDC hdc //原创 2007-09-18 23:23:00 · 876 阅读 · 0 评论 -
文档与视图的建立和关联
<br />本文讨论一下单文档与多视的问题,主要介绍一下笔者在学习VC++6.0过程中探索出的一些个人经验,并给出了实现它们的的主要程序框架。<br /> <br /><br /> <br /> <br /> <br /> <br />本文讨论一下单文档与多视的问题,主要介绍一下笔者在学习VC++6 <br /> <br />一.建立文档与视图:<br /> <br />在Projects选MFC Appwizard(exe),键入工程名,点ok后选单文档,选择默认值,在第四步时,在Advanced…里的W转载 2011-02-11 12:04:00 · 932 阅读 · 0 评论 -
设置控件的字体大小
<br />设置控件大小时,如果重载控件,那么字体的变量,应该要全局变量,而不能是局部变量原创 2011-02-11 12:55:00 · 1033 阅读 · 0 评论 -
在VC++6.0下设置GDI+
1.下载(GDI+ for VC6.0 SDK)GDIPlus文件将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中.<br /> 下载地址:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip(引用他人的)<br />2.在你将要使用GDI+的工程中,完成初始化工作:<br />在StdAfx.h中加入<br />#define ULONG_PTR unsigned long<br />#include <Gd原创 2011-02-11 12:55:00 · 759 阅读 · 0 评论 -
CTypedPtrMap模板指针类的用法 和CArchive类
<br />在编程中运用CTypedPtrMap指针模板类的方法,其存储结构占用物理空间小,比单纯的用数组结构存储的文件将小很多,所以是一种非常推荐的存储及读取文件的方法。<br />你必须在stdafx.h文件中 包含 #include <afxtempl.h> // MFC templates<br />在头文件中包含 #include <io.h><br />其中 CBank.h文件如下:class CBank : public CObject <br />{<br />DECLARE_SER原创 2011-02-11 13:00:00 · 2315 阅读 · 0 评论 -
unexpected end of file while looking for precompiled header directive 解决办法
右键点工程名,选设置,然后选c/c++属性页,再选catagory选单中选 precompiled header ,将选项置成no use 或者autometic <br /><br />---------转载的文章----------<br />预编译头的概念:<br />所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是<br />以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的<br />C/C++代码--------甚至是inline的函转载 2011-02-11 13:03:00 · 3543 阅读 · 0 评论 -
进程内注册控件
<br />HRESULT DllUnregisterServer(LPCTSTR lpszDLLPath) <br />{<br />HINSTANCE hDLL = LoadLibrary(lpszDLLPath) ;<br />if (hDLL)<br />{<br /> typedef HRESULT (__stdcall *PFN_DllUnregisterServer)(void) ;<br /> HRESULT hr ;<br /> PFN_DllUnregisterServer原创 2011-02-11 13:05:00 · 567 阅读 · 0 评论 -
SystemParametersInfo详说
函数功能描述:查询或设置系统级参数。该函数也可以在设置参数中更新用户配置文件。<br /><br />函数原型<br />B00L SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);<br /><br />参数<br />uiAction:该参数指定要查询或设置的系统级参数。其取值如下;<br />SPI_GETACCESSTIMEOUT:<br />检索与可访问特性相关联的超时段的信息,PvParam参数转载 2011-02-11 13:06:00 · 771 阅读 · 0 评论 -
堆栈,堆栈,堆和栈的区别
堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数转载 2011-07-14 17:11:22 · 681 阅读 · 0 评论 -
自绘按钮响应单击消息
在派生类的消息映射中添加:ON_CONTROL_REFLECT_EX(BN_CLICKED, OnClicked)实现函数:BOOL CButtonXX::OnClicked()return FALSE;头文件中添加声明:protected:afx_msg BOOL OnClic原创 2011-07-17 15:20:33 · 637 阅读 · 0 评论 -
VS2010\2008中不能新建项目问题的解决
VS不能新建项目,在左下角提示创建失败,在网上搜索下得到了解决运行输入 regsvr32 %windir%\system32\jscript.dll 如果是在WIN7下,有可能你当前用户没有管理员权限,你可以点击"开始"——程序 - 附件 - 命令提示符,在”命原创 2011-10-14 15:50:26 · 901 阅读 · 0 评论 -
限定窗口最大化和最小化的大小
WM_GETMINMAXINFO<br />void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) <br />{<br />lpMMI->ptMinTrackSize.x = 300;<br />lpMMI->ptMinTrackSize.y = 300;<br />lpMMI->ptMaxTrackSize.x = 800;<br />lpMMI->ptMaxTrackSize.y = 600;<br />CFrameWnd::OnGetMinMa原创 2011-02-11 12:01:00 · 902 阅读 · 0 评论 -
透明窗口
<br />在OnInitDialog()加入:<br />//加入WS_EX_LAYERED扩展属性<br />SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,<br />GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);<br />HINSTANCE hInst = LoadLibrary("User32.DLL"); <br />if(hInst) <br />{ <br />typedef BO原创 2011-02-11 11:59:00 · 479 阅读 · 0 评论 -
如何实现双缓冲:在OnDraw(CDC *pDC)中
<br />CDC MemDC; //首先定义一个显示设备对象<br /> CBitmap MemBitmap;//定义一个位图对象<br /> //随后建立与屏幕显示兼容的内存显示设备<br /> MemDC.CreateCompatibleDC(NULL);<br /> //这时还不能绘图,因为没有地方画 ^_^<br /> //下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小<br /> MemBitmap.Cre原创 2011-02-11 11:59:00 · 820 阅读 · 0 评论 -
vc绘图工具、颜色和绘图函数
1、画笔有两种形式创建画笔一是直接通过GetStockObject()函数来调用二是通过创建画笔来调用 HPEN CreatePen( int fnPenStyle, // pen style int nWidth, // pen width COLORREF crColor // pen color); 创建画笔后必须调用SelectObject原创 2007-09-18 23:45:00 · 4814 阅读 · 0 评论 -
给控件设置焦点的两个方法
1变量m_edit1.SetFocus();2控件IDGetDlgItem(IDC_EDIT1)->SetFocus(); 窗口通过捕获WM_SETFOCUS 表示窗口正在接收输入焦点,WM_KILLFOCUS 表示窗口失去输入焦点;原创 2007-09-19 09:40:00 · 1831 阅读 · 0 评论 -
正确声明全局变量
通常我们都不太赞成使用全局变量,但有时确实也避免不了。每当使用全局变量或对象时,决不要在头文件中实例化,因为头文件一般都被包含(#include)在几个源文件中。这样,链接器将扫描到相同对象的多个实例并报错。必须在单个源文件中实例化全局变量或对象,只有这样才能保证它只被定义一次,而与工程中使用的源文件数目无关。所有其它的存取该全局对象的源文件和头必须以extern方式来声明。下面是一个例子://原创 2007-09-19 09:48:00 · 1012 阅读 · 1 评论 -
Windows应用程序对键盘与鼠标的响应总结
键盘: 1、键盘上每一个有意义的键都对应着一个唯一的标识值,称为扫描码。2、WINDOWS 系统定义的与设备无关的键的标识,称为虚拟码。虚拟码是;一种与设备无关的键盘编码,它的值存放在键盘消息的wParam参数中,最常用的虚拟码;已经在windows.h中定义;3、键盘消息可以分为两类,即按键消息和字符消息。按键消息又可分为两类:系统按键消息和非系统按键消息。(系统消息对应与使用A原创 2007-09-20 00:11:00 · 3865 阅读 · 0 评论 -
对FillRectangle理解有误 TranslateTransform的应用
今天一个朋友问我他在使用FillRectangle向窗体绘制图象的时候总是发生错位,不知道是怎么回事。我拿代码来看了一下,中规中矩的代码: privatevoid DrawTitle_Right(Graphics g) <br /> { <br /> Image img = Files.GetImage("/Images/Top_Right.gif"); <br /> Brush brush =new TextureBrush(转载 2011-02-11 11:51:00 · 1171 阅读 · 0 评论 -
16进制 转化为COLORREF 格式的
<br /> <br />CString m_BackColor.m_frame_color = "#0290D8";<br />DWORD r,g,b;<br />sscanf(m_BackColor.m_frame_color,"#%2X%2X%2X",&r,&g,&b);<br />COLORREF rgb = RGB(r,g,b);<br />brush.CreateSolidBrush (rgb);原创 2011-02-11 13:04:00 · 1248 阅读 · 0 评论 -
去掉路径中的空格符
<br />CString str =_T("") ;<br /> if(PathFileExists(CMyPro::m_InitOpenImagePath))<br /> {<br /> str.Format(_T("/"%s/""), CMyPro::m_InitOpenImagePath) ;<br /> }原创 2011-02-11 11:40:00 · 718 阅读 · 0 评论 -
滚动条的滑块的长度获取
<br />滑块长度 =(int)(GetScrollInfo.nPage*(GetScrollInfo.nPage-32)/GetScrollInfo.nMax)原创 2011-02-11 11:44:00 · 4635 阅读 · 0 评论 -
RedrawWindow 和 InvalidateRect 刷新
<br />当父窗体设置了 WS_CLIPCHILDREN 的属性后, 默认状态下,RedrawWindow 和 InvalidateRect 不会导致子窗体重绘,因此,如果子窗体同时设置了 WS_EX_TRANSPARENT 属性,子窗体就会被父窗体刷没了。<br />解决的办法是 RedrawWindow 的时候添加 RDW_ALLCHILDREN 标志,强制子窗体也重绘,而不要使用默认的 RedrawWindow 和 InvalidateRect(当然也包括 Invalidate)。<br />Red原创 2011-02-11 11:48:00 · 1105 阅读 · 0 评论 -
禁止CListCtrl 的水平滚动条
<br />ON_WM_NCCALCSIZE() <br /><br />void CMyListCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) <br />{ <br />ModifyStyle(WS_HSCROLL | WS_VSCROLL,0,0); <br />CListCtrl::OnNcCalcSize(bCalcValidRects, lpncsp); <br />}原创 2011-02-11 11:58:00 · 4245 阅读 · 2 评论 -
error LNK2005: __initp_misc_invarg 已经在 libcmtd.lib(invarg.obj) 中定义
1>libcmt.lib(invarg.obj) : error LNK2005: __initp_misc_invarg 已经在 libcmtd.lib(invarg.obj) 中定义1>libcmt.lib(invarg.obj) : error LNK2005: __call_reportfault 已经在 libcmtd.lib(invarg.obj) 中定义 当在链接Lib文原创 2012-06-15 10:11:56 · 8001 阅读 · 1 评论