在SDK,进行windows程序设计(不使用mfc),使用这些控件,要进行一些必要的初试化,否则如果在对话框上画这些控件,对话框就不能正常显示
先说Rich Edit控件,这个是个特例。
如果往对话框里添加了一个Rich Edit控件,然后运行程序.理应弹出对话框,但是没有弹出. 如果把Rich Edit 控件去掉,再运行.对话框就可以弹出。
如果在mfc下进行开发,那么只要程序启动的时候添加AfxInitRic...
windows_API阅读全文
CDC是Windows绘图设备的基类 CClientDC: (1)(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDC
CPaintDC: (1)用于响应窗口重绘消息(WM_PAINT)是的绘图输出。 (2)CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队...
windows_API阅读全文
PreSubclassWindow PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。
其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。
如果用户直接创建定制控件窗口,CWnd...
windows_API阅读全文
我们经常在一些软件中看到类似的功能:鼠标移动到一个按钮(或其他控件)上的时候,自动弹出一些提示(不是弹出对话框),以提醒用户该控件的作用或注意事项。这种提示就是所说的Tooltip(如图1所示)。关于Tooltip,网上已经有很多资料了,我在这里只是给大家提供一些链接,让没有做过的朋友能在最短的时间内实现这个功能。
图1
Codeproject已经有许多现成的Tooltip类,并且有的功能非常之强,可以直接拿来用,这会为你节省...
windows_API阅读全文
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。
ClientToScreen把客户区坐标系下的REC...
windows_API, 区别阅读全文
用Sleep函数延时,如何时间太长,程序就像无响应一样,采用消息泵可以解决这个问题
5秒延时
COleDateTime odtStart = COleDateTime::GetCurrentTime();
COleDateTimeSpan odtsEnd = COleDateTime::GetCurrentTime()-odtStart;
while(5>=odtsEnd.GetTotalSeconds())
{
MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
odtsEnd = COleDateTime::GetCurrentTime()-odtStart;
}
A...
windows_API阅读全文
一 使用Shell函数
1 获取应用程序的安装路径
TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL); AfxMessageBox(buf);
2 获取应用程序数据路径的文件夹
TCHAR bufApplicateData[_MAX_PATH]; SHGetSpecialFolderPath(NULL,bufApplicateData,CSIDL_APPDATA,NULL); AfxMessageBox(bufApplicateData);
3 获取系统文件夹
TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL,buf,CSIDL_...
windows_API阅读全文
有时候需要获得窗口矩形的大小和客户区矩形的大小二者的值,故需要分别调用GetWindowRect和GetClientRect。如果只需要获得客户区矩形的大小,调用GetClientRect就行了。
GetWindowRect函数
函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect); 在Visual Studio 2005中,函数原型为void GetWi...
windows_API阅读全文
char与TCHAR之间的转化主要用到函数MultiByteToWideChar和WideCharToMultiByte.
char转TCHAR
如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写:
char strUsr[10] = "Hello"; TCHAR Name[100]; #ifdef UNICODE MultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100); #else strcpy(Name, strUsr); #endif
...
windows_API阅读全文
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码.
MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的...
windows_API阅读全文