`
yingyingol
  • 浏览: 746868 次
文章分类
社区版块
存档分类
最新评论
文章列表
激活窗口的方法有很多,下面介绍几种常用的: 1.SetForegroundWindow(Handle); 2.SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 3.SetActiveWindow(); SetForegroundWindow窗口函数激活一个窗口并将其强制为前台的。 SetActiveWindow函数激活一个窗口,但当应用程序处于后台时,将不激活指定窗口。当应用程序激活窗口时处于前台,则窗口将被放到前台。
最近在研究如何只运行程序的一个实例,当第二次运行时,激活已经存在的进程的方法,其中一个方法就是通过GetWindow()函数来枚举窗口,然后依次调用GetPorp()函数来获取属性值,值为进程设置的值时,表示该窗口就是我们要查找的窗口,在BOOL CCTestApp::InitInstance()中加入以下代码 m_hMutex = CreateMutex(NULL,TRUE,_T("test")); if (m_hMutex == NULL) { return FALSE; } //如果程序已经存在并且正在运行 if (GetLastError() == ...
这类问题网上资料很多,这里只简单提炼几点: 闪烁的原因:其实闪烁并不是因为绘图太慢导致的,而是因为清屏所造成的视觉差。即显示区域经历了一个图像从有到无再到有的过程。 入手点:知道了闪烁的原因,就想办法在清屏上做文章。首先,屏蔽系统消息清屏,自己来清屏;其次,这个清屏的操作不能直接暴露在界面上,那就只能在内存中清屏了。这就引入了双缓冲技术。 双缓冲技术: CDC* pDC=GetDC(); //屏幕DC(缓冲1) CDC ...
1、VC下,为了方便调试,对于delete之后指针的值或者指针变量初始化的时候,系统都会以0xcdcdcdcd来初始化指针变量。一般的,当指针值为0xcdcdcdcd时,都为无效指针。 注:0xcdcdcdcd与空指针不一样。 2、VC下,为了检查内存越界,在new一块内存后,系统会在用户申请的内存区间的最后,额外透明的分配四字节内存(内容为:FD FD FD FD),作为越界检测只用。在释放内存的时候,系统会检查这几个字节,判断是否有内存访问越界的可能。 注:系统检查越界的函数:CheckBytes。 3、VC下,F5启动调试的时候,程序启动得非常慢。 有可能是断点过多,通过断 ...
SQLConfigDataSource( HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes) hwndParent:一般置成NULL即可。 fRequest:根据需求可以是 ODBC_ADD_DSN: 增加一个新数据源 ODBC_COFIG_DSN: 配置(修改)一个已经存在的数据源 ODBC_REMOVE_DSN: 删除一个已经存在的数据源 ODBC_ADD_SYS_DSN:. 增加一个新的系统数据源 ODBC_CONFIG—SYS—DSN: 更改一个已经存 ...
消息类型: 1、系统定义消息(System-Defined Messages) 窗口消息(Windows Message):与窗口的内部运作有关(创建、绘制、销毁等) 命令消息(Command Message):与处理用户请求有关(单击菜单、工具栏、控件等)——WM_COMMAND 控 ...
可变参数的一个前提:_cdecl (参数压栈方向:从右向左) 可变参数宏: va_start,va_arg,va_end是在stdarg.h中被定义成宏的,由于硬件平台的不同,编译器的不同,所以定义的宏也有所不同,下面以VC++中stdarg.h里x86平台的宏定义摘录如下: typedef char * va_list; #define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF ...
问题描述: 假定EXE调用DLL,DLL内部又调用DLL1。 DLL和DLL1与EXE不在同一目录下,而是位于一个单独的目录DLLDIR下。 现象: LoadLibrary(L"DLL"); 加载失败①。 LoadLibrary(L"DLL绝对路径"); 加载失败②。 失败原因: 失败①好理解,失败②是因为虽然指定了DLL绝对路径作为LoadLibrary的参数,但是该参数却无法对DLL内部调用的DLL1起作用(如果把DLL1扔到EXE同级目录下,则可以成功加载),因此无法加载的实际上是DLL1。 解决方案: ①LoadLibrar ...
先看一个例子: 1、创建一个动态链接到MFC DLL的规则DLL,其内部包含一个对话框资源。指定该对话框ID如下: #define IDD_DLL_DIALOG 2000 2、创建一个基于对话框的mfc应用程序,它包含两个对话框资源,IDD_UI_DIALOG和IDD_EXE_DIALOG。并将 ...
package com.alpha.vedio; import java.io.File; import java.util.ArrayList; import java.util.Calendar; import java.util.List; /** * 讲任何视频格式转为flv * @author JavaAlpha * @date 2011-10-20 * @version V 1.0 */ public class TestVedio { public static boolean process(String resourcePath) ...
下表显示了实现一个典型的gopher应用的步骤: 目的 方法 结果 开始一个gopher session 创建一个CInternetSession对象 初始化WinInet 并联接服务器 连接到一个gopher Server 用CInternetSession::GetGopherConnection 返回一个CGopherConnection对象 ...
表显示了实现一个典型的FTP client application的步骤: 目的 方法 结果 开始一个FTP session 创建一个CInternetSession对象 初始化WinInet 并联接服务器 连接到一个FTP Server 用CInternetSession::GetFtpConnection 返回一个CFtpConnection对象 CD到 FTP 服务器的一个新目录 用CFtpConnection::SetCurrentDirectory CD到FTP服务器的一个 新目录 Find 第一个FTP目录中的文件 用CFtpFil ...
表显示了实现一个典型的HTTP client application的步骤: 目的 方法 结果 开始一个HTTP session 创建一个 CInternetSession对象 初始化WinInet并联接服务器 连接到一个HTTP Server 用CInternetSession::GetHttpConnection 返回一个CHttpConnection对象 打开一个HTTP 请求 用CHttpConnection::OpenRequest 返回一个CHttpFile对象 发送一个HTTP 请求 用CHttpFile::AddRequestHea ...
二、方法与技巧(Tips & Knacks) 客户端的用户要实现某些行为,必须具备先决条件(如读取文件,就必须先建立一个Internet连接)。下表以MFC为例,列出了一般的Internet URL (FTP, Gopher, or HTTP)客户端行为要实现某个目标所必须使用的方法。 实现 方法 建立一个连接 创建CInternetSession对象,它是WinInet Internet客户应用的基础 打开一个URL 建立一个连接,调用CInternetSession::OpenURL 函数,返回一个只读资源对象 读取 URL ...
一个Internet客户端程序的目的是通过Internet协议如:Gopher, FTP, or HTTP来存取网络数据源(服务器)的信息。一个Internet客户端程序可以访问服务器获得象天气预报,股票价格、重要新闻数据。Internet客户端程序可以通过外部网络(Internet)或内部网络(一般为Intranet)访问服务器。 MFC类库包含 Win32 Internet 扩展接口,也就是WinInet,专门用于Internet客户端程序。MFC将WinInet封装在一个标准的、易于使用的类集合中。在编写WinInet客户端程序时,你既可以直接调用win32函数,也可以使用WinIne ...
Global site tag (gtag.js) - Google Analytics