摘要: 相信在Window 下面编程的很多兄弟们都不是很清楚Window 中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Window 中桌面(Deskkop)以及顶层窗口,以及子窗口之间的关系。 在Window 的图形界面下,最基本显示信息的元素就是窗口,每一个Window 窗口都管理着自己与其他窗口之间的关系和自身的一些信息,如:是否可见,窗口的所有者,窗口的父/子关系等等信息,当窗口创建、销毁、显示的时候,就会用到这些信息。 在每一个窗口实例中,有四个元素被窗口管理器用来建立窗口管理链表。Child : 指向窗口子窗口的. 阅读全文
posted @ 2013-07-20 12:09 执迷不悟~ 阅读(1095) 评论(0) 推荐(0)
摘要: #pragma once #include <string> #include <Windows.h> using namespace std; #define SAFE_DELETE_ARRAY(p)\ if (p != NULL)\ {\ delete [] p;\ p = NULL;\ }\namespace utility { string unicode_2_ansi(const wchar_t *p_in) { int nLen = WideCharToMultiByte(CP_OEMCP, 0, p_in, -1, NULL, 0, NULL, FA... 阅读全文
posted @ 2013-05-28 15:45 执迷不悟~ 阅读(288) 评论(0) 推荐(0)
摘要: 遇到这样的问题令我极为郁闷,于是查找了一下,找到了解决方案:原来是微软的 DEBUG_NEW 和 GDI+ 不匹配造成的。方法1:注释掉:#ifdef _DEBUG#define new DEBUG_NEW#endif这就好了。方法2:::new Bitmap(cx,cy,PixelFormat32bppRGB); //加上全局作用域说明符方法3:详细见:Microsoft Foundation Classes DEBUG_NEW Does Not Work with GDI+http://support.microsoft.com/kb/317799/ 阅读全文
posted @ 2013-05-03 18:13 执迷不悟~ 阅读(1478) 评论(0) 推荐(0)
摘要: CPaintDC dc(this); //获得设备上下文 CFont m_font; dc.SetBkMode(TRANSPARENT); //设置背景透明 CRect m_rect; Get... 阅读全文
posted @ 2013-04-02 14:28 执迷不悟~ 阅读(316) 评论(0) 推荐(0)
摘要: 一直对这四种转换类型都没好好的研究过,用得最多的还是C的强制转换(TYPE)m_obj; C++有四种类型转换:1.static_cast用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换. 阅读全文
posted @ 2013-03-29 18:03 执迷不悟~ 阅读(278) 评论(0) 推荐(0)
摘要: 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。(1)message 参数 Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #Pragma message(“ 阅读全文
posted @ 2013-03-29 17:44 执迷不悟~ 阅读(284) 评论(0) 推荐(0)
摘要: 简单的放一个最基本的win32程序吧#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("HelloWin") ; HWND hwnd ; MSG ... 阅读全文
posted @ 2013-03-28 19:01 执迷不悟~ 阅读(355) 评论(0) 推荐(0)
摘要: Unicode的出现是为了适应软件国际化的需要。Unicode不同于双字节字符集(DBCS)。 一、相关操作函数 1、DBCS使用下面的函数操作字符串: CharNext——获得后一个字符CharPrev——获得前一个字符IsDBCSLeadByte——判断是否为两个字节字符的第一个字节... 阅读全文
posted @ 2013-03-20 12:39 执迷不悟~ 阅读(808) 评论(0) 推荐(0)
摘要: 变长参数的函数即参数个数可变、参数类型不定 的函数。设计一个参数个数可变、参数类型不定的函数是可能的,最常见的例子是printf函数、scanf函数和高级语言的Format函数。在C/C++中,为了通知编译器函数的参数个数和类型可变(即是不定的、未知的),就必须以三个点结束该函数的声明。// pri... 阅读全文
posted @ 2013-03-20 12:14 执迷不悟~ 阅读(487) 评论(0) 推荐(0)
摘要: // 有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括: // a. 常量型成员变量 如:const int i;// b. 引用型成员变量 如:int &i;// c. 静态成员变量 如:static int i;// d. 整型静态常量成员变量 如:static const int i;// e. 非整型静态常量成员变量 如:static const double i;// // 对于常量型成员变量和引用型成员变量的初始化,必须通过构造函数初始化列表的方式进行... 阅读全文
posted @ 2013-03-19 12:13 执迷不悟~ 阅读(1005) 评论(0) 推荐(2)