windows编程
文章平均质量分 56
laogaoAV
一代学者
展开
-
vc编译warning LNK4089和链接警告LNK4098解决方法
一、warning LNK4089vc编译时Debug版本下没问题,release版本下出现如下警告: LINK : warning LNK4089: all references to “ODBC32.dll” discarded by /OPT:REF LINK : warning LNK4089: all references to “ADVAPI32.dll” discarde转载 2013-01-26 16:42:42 · 8068 阅读 · 0 评论 -
LINK : warning LNK4089
LINK : warning LNK4089 的解决办法 好记性不如烂笔头。今天编译工程时,遇到了2个警告LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REFLINK : warning LNK4089: all references to "comdlg32.d转载 2013-01-26 16:43:56 · 860 阅读 · 0 评论 -
Win32汇编--使用资源--菜单和加速键
使用资源 —— 菜单和加速键 主菜单,顶层菜单弹出式菜单,子菜单右键弹出式菜单系统弹出式菜单 菜单中的菜单项有好几种,从资源定义的角度来看,分隔用的横线也是一个菜单项,除横线外其他菜单项可以供用户选择,也可以设置为“禁止”或“灰化”状态暂时停用。 菜单项上的圆点表示选中标记是互斥的,对钩表示是不互斥的。 加速键就是菜单项的快捷键。表示当窗口是激活的时候,不必打开菜单,直接按快捷键就相当于选择了菜单转载 2013-01-26 19:06:39 · 1316 阅读 · 0 评论 -
windows下的两个免费资源编辑器
虽然最新的Windows Server 2003 R2 Platform SDK已经带上了MFC和ATL,我们现在也可以不做任何小动作来使用MS Visual C++ Express(下称VCEX)做WTL开发,然而,VCEX这家伙却是不带资源编辑器的!!!我试了试手写.RC资源文件,发现这个效率根本无法忍受。于是想干脆该用wxWidgets,但是这套东西跟VC几乎没什么整合(想想WTL还是很明智转载 2013-02-01 22:18:49 · 3217 阅读 · 1 评论 -
whats CFrameWnd::m_bAutoMenuEnable useful
CFrameWnd::m_bAutoMenuEnableguess it hahathen send me a email 1418540618@qq.com原创 2013-02-05 14:31:23 · 500 阅读 · 0 评论 -
error C2143: syntax error : missing ';' before 'tag::id' 'BOOL' : redefinition; typedef cannot be ov
碰到這個錯誤,是啥回事呢?是因為你在頭文件裡的類的定義後,少了一豐分號原创 2013-02-08 22:26:33 · 853 阅读 · 0 评论 -
MFC应用程序接收命令行参数的实现
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://firefish.blog.51cto.com/298258/269461 有些时候我们需要我们的可执行程序在启动时获得用户指定的参数值,比如windows中常用的ping命令:ping 192.168.0.1 –t 其中192.转载 2013-02-10 00:01:36 · 637 阅读 · 0 评论 -
怎樣使用CMenu類
怎样使用CMenu类 CMenu类从CObject类派生而来。为什么要使用CMenu类呢?AppWzard不是把菜单做好了吗?在资源编辑器上修改菜单不是很方便吗? 我是个vc++初学者,自从当斑竹以来,天天看贴子,也学到了不少东西。感觉学vc++稍微深入一点好,至少要能搞清楚AppWizard在背后都干了些什么东西。事实上mfc就是用CMenu类来生成菜转载 2013-02-08 22:45:49 · 422 阅读 · 0 评论 -
MFC —— CWnd::SetCapture
调用此函数后,接下来所有的鼠标事件都被发送到当前的CWnd对象,发送给CWnd对象的事件中不包括鼠标的坐标信息。函数原型: CWnd* SetCapture( );返回值:返回一个指针,该指针指向之前接受所有鼠标输入的窗口对象。如果返回值为空,则说明这样的窗口不存在。这个返回值可能是临时的,所以不能将它存储下来在后面使用。关键点:当CWnd的对象不再要求所有转载 2013-02-13 12:24:46 · 405 阅读 · 0 评论 -
CWnd::SetCapture, ReleaseCapture, GetCapture
一般,只有鼠标在CWnd的客户区内,你才能接受到鼠标消息。调用SetCapture后,即使鼠标移动出客户区,你也可以接受到鼠标消息。不过系统中只能有一个程序调用SetCapture,所以你需要在不使用时调用ReleaseCapture释放。而GetCapture可以知道当前哪个窗口调用了SetCapture。由于只能有一个程序调用SetCapture,所以这个函数不如SetWindowsHookE转载 2013-02-13 12:25:42 · 634 阅读 · 0 评论 -
tmPitchAndFamily
格式化输出 如果要使用TextOut函数在Windows应用程序中输出多行文字,我们就必须先取得字符的宽度和高度,通常我们在窗口消息处理函数中处理WM_CREATE消息的时候调用GetTextMetrics函数来获取他们,之所以放到WM_CREATE的部分调用,是因为当系统启动后,系统字体的大小就不会发生改变,我们只需要调用一次GetTextMetrics就可以了。具体方法如下:转载 2013-02-13 16:04:08 · 5633 阅读 · 0 评论 -
MFC的消息處理函數
MFC的消息处理函数1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg转载 2013-02-13 17:05:46 · 1065 阅读 · 0 评论 -
很感謝這篇文張
刚申请了空间,今晚是我第一次写日记,以后有空就写写.让这日记来记录我的成长. 刚学我windows程序设计,在windows programming 第四\章碰到了麻烦,书中例子无法编译,google中查到了解决方法,http://blog.sina.com.cn/u/4388a973010004h9 现象: 在编译时出现如下错误:Compili转载 2013-02-13 18:41:28 · 527 阅读 · 0 评论 -
備忘錄:#define WINVER 0x0500 and #include <afxwin.H>
看windows程序設計的第一個例子想用MFC把這代碼重寫遍但是出現了如下在编译时出现如下错误:Compiling...sysmets.cppd:\program files\microsoft visual studio\myprojects\sysmets\sysmets.h(149) : error C2065: 'SM_MOUSEWHEELPRESE原创 2013-02-13 21:37:08 · 846 阅读 · 0 评论 -
碰到:Could not execute: Access denied(Win32 error 5),
:Could not execute: Access denied(Win32 error 5),怎麼解決呢原來是我開了一個網格遊戲,所以才會這樣,關掉就好了,哈哈原创 2013-02-11 11:10:01 · 8224 阅读 · 0 评论 -
两种方法查看MFC源代码
第一种--使用mfc.bsc源浏览器文件 mfc.bsc是可以查看MFC源代码的文件,其位置在MFC源代码文件夹下,Visual Studio版本不一样的话,位置也不一样。vc6.0位置:C:/Program Files/Microsoft Visual Studio/VC98/MFC/SRC/vc2008sp1位置:D:/Program Files/Microsoft Vi转载 2013-02-11 11:10:55 · 831 阅读 · 0 评论 -
vc調試方法大全
VC调试方法大全 一、调试基础调试快捷键F5: 开始调试Shift+F5: 停止调试F10: 调试到下一句,这里是单步跟踪 F11: 调试到下一句,跟进函数内部Shift+F11: 从当前函数中跳出Ctrl+F10: 调试到光标所在位置F9: 设置(取消)断点Alt+F9: 高级转载 2013-02-11 12:17:58 · 514 阅读 · 0 评论 -
mfc瀏覽器
方法1.使用ActiveX控件实现使用ActiveX控件来放一个浏览器控件就OK了,步骤如下:1.新建工程,使用MFC AppWizard向导2.使用单文档界面(也可以使用Dialog界面)3.下面步骤为默认值,直到最后一步4.最后一步改变View类的基类为:CFormView,表示可以在界面加入控件,然后点击完成5.打开资源选项卡-->打开Dialog资源-->右击-->转载 2013-02-11 17:41:30 · 1251 阅读 · 0 评论 -
收藏 _tcsdup()这个函数到底是干啥用的啊
CWinApp::m_pszAppName说明:指定应用程序的名字。应用程序可以从传递给CWinApp的构造函数的参数中得到,如果其中没有指定名字,则是ID为AFX_IDS_APP_TITLE的资源字符串。如果在资源中找不到应用程序的名字,那么它来自程序的可执行文件名。全局函数AfxGetAppName返回该值。m_pszAppName是const char* 类型的公有变量。转载 2013-02-11 18:22:31 · 5110 阅读 · 0 评论 -
MFC全局函数开局——AfxGetApp解剖
MFC全局函数开局——AfxGetApp解剖【转自晨风】,MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象。主要全局函数有:AfxWinInit() AfxBeginThread() AfxEndThread() AfxFormatString1() AfxFormatString2()AfxMessageBox() AfxOutPutD转载 2013-02-11 20:21:30 · 839 阅读 · 0 评论 -
从零开始,重新学习windows编程(2)--环境准备,不用IDE编写程序
从零开始,重新学习windows编程(2)--环境准备,不用IDE编写程序2011-06-08 14:00 by cnyao, 1466 阅读, 11 评论, 收藏, 编辑既然是求甚解,那就要脱离掉IDE,保证每个字符都是经过思考产生出来的,其实我们脱离掉IDE环境,更能够了解到每一步的执行是怎么样的,IDE到底在你选择项目、创建项目的时候为了做了哪些事情,还有一个好处就是,当转载 2013-02-12 14:11:37 · 1894 阅读 · 0 评论 -
从零开始,学习windows编程(3)—hello.c的疑惑
从零开始,学习windows编程(3)—hello.c的疑惑2011-06-10 14:32 by cnyao, 2399 阅读, 6 评论, 收藏, 编辑上一篇,我们问了几个问题,这一篇就从hello.c的各个方面来研究研究,等到这一篇的结束来看这些疑惑有哪些是可以解答了的,当然还有一些可能要放到后面解决了……。既然要抽丝剥茧,就要从手头已有的线索出发,同时加上搜索到转载 2013-02-12 14:17:18 · 2217 阅读 · 1 评论 -
VC的调试中,AssertValid和Dump函数的应用
VC的调试中,AssertValid和Dump函数的应用2006-10-14 22:58:40| 分类: MFC|字号 订阅CObject::AssertValid 成员函数提供对对象内部状态的运行时检查。尽管从 CObject 派生类时不需要重写 AssertValid,但可以通过重写使您的类更安全可靠。AssertValid 应在对象的所有成员变量上执转载 2013-02-12 15:26:16 · 543 阅读 · 0 评论 -
CObject::Dump
CObject::DumpVisual Studio 2008其他版本此主题尚未评级 - 评价此主题Dumps the contents of your object to a CDumpContext object.virtual void Dump(转载 2013-02-12 16:03:31 · 1119 阅读 · 0 评论 -
CRuntimeClass::FromName
CRuntimeClass::FromNameVisual Studio 2005其他版本此主题尚未评级 - 评价此主题Call this function to retrieve the CRuntimeClass structure associated with the familiar name转载 2013-02-12 16:05:39 · 1065 阅读 · 0 评论 -
LPCTSTR LPCWSTR LPCSTR含义
LPCTSTR LPCWSTR LPCSTR含义 2010-06-29 13:48:08| 分类: C++|字号 订阅#ifdef UNICODE #define LPCTSTR LPCWSTR #else #define LPCTSTR LPCSTR #endif LPCTSTR A 32-bit poin转载 2013-02-12 16:12:53 · 1145 阅读 · 0 评论 -
CDC::GetTextMetrics
CDC::GetTextMetricsVisual Studio 2005其他版本此主题尚未评级 - 评价此主题Retrieves the metrics for the current font using the attribute device context.转载 2013-02-13 17:45:39 · 548 阅读 · 0 评论 -
C++ int转string
C++ int转string 2010-04-07 20:29:06| 分类: [C++] | 标签:c++ int转string atoi stringstream sprintf |字号 订阅一、使用atoi说明:itoa( int value, char *string, int radix );转载 2013-02-15 05:13:50 · 659 阅读 · 0 评论 -
MFC中CString的Format方法使用技巧
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。步骤/方法转载 2013-02-15 05:15:16 · 434 阅读 · 0 评论 -
未经初始化的静态全局变量会被程序自动初始化为0
未经初始化的静态全局变量会被程序自动初始化为0static int i;这里i为0原创 2013-02-16 13:13:53 · 1119 阅读 · 0 评论 -
WM_SIZE
当主窗口的客户区部分大小改变时,我们的应用程序将接收到 WM_SIZE 消息。当然该窗口第一次显示时,我们也将接收到该消息。我们应该把缩放编辑控件的动作放到此处。我们要把编辑控件变成和我们的窗口客户区一样大,所以先得要得到父窗口客户区的大小。这些值包含在参数 lParam 中, lParam 的高字部分是客户区的高,低字部分是客户区的宽。然后我们调用 MoveWindow 函数来重新调整编辑控件的转载 2013-02-16 16:11:08 · 590 阅读 · 0 评论 -
获取窗口句柄
如果你是用MFC的话,每个窗口类都有一个变量HWND m_hWnd,取窗口句柄的函数很多,如GetWindow,FindWindow,EnumWindow等,不局限于本窗口。转载 2013-02-16 16:00:52 · 441 阅读 · 0 评论 -
WM_SIZE和WM_CREATE谁先谁后
我一直认为创建一个窗口的时候,窗口处理过程处理WM_CREATE是在处理WM_SIZE之前的,所以很多初始化的东西都放在WM_CREATE处来做,但最近弄一个程序发现到了WM_SIZE处出错,原因是空指针,而这个指针应该是在WM_CREATE的时候被赋值的,奇怪了,难道WM_SIZE会在WM_CREATE之前?于是设两个断点,不看不知道,一看还真的如此,如下图:程序每次总是先触到WM_SI转载 2013-02-16 16:14:46 · 2108 阅读 · 1 评论 -
滚动条 实现的细节代码 SCROLLINFO
今天分析了以前的一段自绘 滚动条的代码, 终于明白了滚动条的细节。 对于Edit 来说SCROLLINFO si1;si1.nMin:0, si1.nMax:14, si1.nPage:6, si1.nPos:9, si1.nTrackPos:9 例如上面信息:si1.nMax - si1.nMin + 1代表编辑框中文字的总行数s转载 2013-03-07 16:58:55 · 844 阅读 · 0 评论 -
SCROLLINFO结构详解
在刚开始使用SCROLLINFO结构时感觉很不顺手,尤其其中的成员fMask理解不太深刻,经过查询资料才理解一二。 在使用滚动条功能时,如果要设置它的范围和位置可以用以前的函数,例如:SetScrollRange()、 SetScrollPos()、GetScrollRange()、GetScrollPos()等,但目前通常使用SetScrollInfo()与 GetScrol转载 2013-03-07 16:42:22 · 798 阅读 · 0 评论 -
谈谈Windows程序中的字符编码
谈谈Windows程序中的字符编码写这篇文章的起因是这么一个问题:我们在使用和安装Windows程序时,有时会看到以“2052”、“1033”这些数字为名的文件夹,这些数字似乎和字符集有关,但它们究竟是什么意思呢?研究这个问题的同时,又会遇到其它问题。我们会谈到Windows的内部架构、Win32 API的A/W函数、Locale、ANSI代码页、与字符编码有关的编译参数、MBCS和Uni转载 2013-03-08 16:23:05 · 1073 阅读 · 0 评论 -
Scrollbars & Scrolling
Scrollbars & ScrollingDesign & Implementation of a Win32 Text EditorWelcome to the third installment of the "Design and Implementation of a Win32 Text Editor" article serie转载 2013-03-08 17:23:34 · 1197 阅读 · 0 评论 -
C 程序的外部变量与函数
C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。由于C语言不允许在一个函数中定义其他函数,因此函数本身是外部的。一般情况下,也可以说函数是全局函数。在缺省情转载 2013-03-09 16:16:50 · 616 阅读 · 0 评论 -
why C program dont nee ExitProcess
The function mainCRTStartup in libc.lib calls main then ExitProcess, so there is no need to explicitly call ExitProcess from your C code. There are other useful entry point functions in the C Runtim原创 2013-03-08 18:28:33 · 565 阅读 · 0 评论 -
Windows Objects
Windows ObjectsMany of the API functions create objects of some sort, which you then manipulate and destroy with other API functions. For example you could create a window, move it, resize it and转载 2013-03-08 18:29:08 · 504 阅读 · 0 评论