2012-08-15 23:42
⁄ 工业·编程
⁄ 共 1435字
列表控制有一个特殊的功能,当以详细资料方式显示时,列表顶部的表头可以当作按钮来使用,这可以通过列表控制创建时的风格来控制。当鼠标点击列表头名称时,列表控制就会向其父窗口发送一个LNV_COLUMNCLICK消息,利用类导向中列表控制IDC_LISTCTRL对应的LNV_COLUMNCLICK消息加入相应处理函数,就可将表列按照特定顺序进行排列。其函数使用方法见程序,其中iSort为排序的表列索引号,(PFNLVCOMPARE)CompareFu...
UI界面阅读全文
2012-08-15 23:41
⁄ 工业·编程
⁄ 共 5979字
以下代码实现获取某个进程所属的用户名,比如RavMonD.exe的进程PID是1300,那么修改这条语句就OK GetProcessUser(1300,&bs);它的获取结果是:SYSTEM。 ----------------------------------------------------- #include <windows.h> #include <iostream.h> #include <COMDEF.H> #include <stdio.h> typedef struct _UNICODE_STRING { ...
c++阅读全文
2012-08-15 23:40
⁄ 工业·编程
⁄ 共 509字
HANDLE hToken; LUID sedebugnameValue; TOKEN_PRIVILEGES tp;
BOOL EnableDebugPrivilages() { if (!::OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { return FALSE; } if (!::LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue )) { ::CloseHandle( hToken ); return FALSE; } tp.Privil...
c++阅读全文
2012-08-15 23:37
⁄ 工业·编程
⁄ 共 7195字
在Windows 2000以上的MS操作系统,通过Windows的任务管理器可以列出当前系统的所有活动进程(如图1所示),在Windows XP中,更是在控制台下增加了一条Tasklist命令,让系统下的所有进程无所遁行(如图2所示)。这一切是怎么实现的呢?
引用侯捷大师在《深入浅出MFC》的一句话,“知其然而不知其所以然,真不是个好办法”。既然如此,我们干脆自己动手,自己通过编程来实现吧,这样很有成就...
VC阅读全文
2012-08-15 23:35
⁄ 工业·编程
⁄ 共 15728字
//这是头文件cpu.h==================
#include <stdio.h> #include <windows.h>
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004) typedef LONG NTSTATUS; #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
//self def struct. typedef struct CpuData { DWORD dwPID; UINT cpuusage; __int64 l...
c++, cpu阅读全文
2012-08-14 23:22
⁄ 工业·编程
⁄ 共 2253字
网上看到了防止CLIstCtrl 闪烁的方法,挺详细的,就是第五种方法有点问题,做了下修改,就可以用了:
1.使用SetRedraw禁止窗口重绘,操作完成后,再恢复窗口重绘
m_ctlList.SetRedraw(FALSE);
//以下为更新数据操作
//……
//恢复窗口重绘
m_ctlList.SetRedraw(TRUE);
2.使用LockWindowUpdate禁止窗口重绘,操作完成后,用UnlockWindowUpdate恢复窗口重绘
m_ctlList.LockWindowUpdate();
//以下为更新数据操作
//……
//恢复窗口重绘
...
UI界面阅读全文
2012-08-14 23:21
⁄ 工业·编程
⁄ 共 6054字
一、什么是虚拟列表控件虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。 二、为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据。现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录。通常有两种方法解决这个问题:1是仅仅在ListCtrl中插入少量的数据,比如1...
MFC阅读全文
2012-08-14 23:20
⁄ 工业·编程
⁄ 共 1865字
视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw前会调用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。
时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中...
MFC阅读全文
2012-08-14 23:19
⁄ 工业·编程
⁄ 共 693字
CDC是Windows绘图设备的基类 CClientDC: (1)(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDC
CPaintDC: (1)用于响应窗口重绘消息(WM_PAINT)是的绘图输出。 (2)CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队...
windows_API阅读全文
2012-08-14 23:17
⁄ 工业·编程
⁄ 共 5387字
对于MFC程序员来说做UI开发是痛苦的事情,不过大多数情况下我们都需要做这件事情,因为MFC自带的控件实在是太简陋了。这时候我们多半会涉及到自绘控件,随之而来的很可能就是窗口和控件的闪烁问题。这篇文章希望对MFC的窗口和控件闪烁问题做一个尽量全面的总结。
一、闪烁的原因
引起闪烁的原因很多,以至于网上有n多种解决闪烁问题的方法;如果你按照某一种方法做了仍然没有解决你的问题,请不要认定这个方法有问题,而是你没...
UI界面阅读全文