
Windows程序设计
墨格飘殇
不想依赖别人。
展开
-
CHtmlView与javascript交互
/***********************js调用工程中的方法****************************/// 工程文件class CTestAppProj : public CWinAppEx{...private: CChildView *m_pChildView;public: HRESULT GetExternal(IDi原创 2013-04-15 16:38:04 · 1174 阅读 · 0 评论 -
OnOK()、OnCancel()()、OnClose()、OnDestroy()
第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数。从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的“确定”、“取消”按钮则对应了CDialog。第二,OnClose()和OnDestroy()在单视图程序中,根据>所讲,程序退出时执行的操作顺转载 2014-01-13 22:56:06 · 500 阅读 · 0 评论 -
创建透明窗口
hWnd:窗口句柄;nDegree:透明程度void TranslateWnd(HWND hWnd, int nDegree){ ::SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); // TopMost DWORD dwStyle = GetWindowLong(hWnd, GWL_EXSTY原创 2014-02-15 11:57:52 · 905 阅读 · 1 评论 -
应用程序发送系统消息
// 通过向系统发送消息,可以完成一些系统任务。HWND hWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL);if (hWnd != NULL){ // 显示桌面 ::PostMessage(hWnd, WM_COMMAND, MAKELONG(407, 0), NULL);}具体的消息如下:转载 2014-02-17 09:18:48 · 600 阅读 · 0 评论 -
创建自定义鼠标形状
鼠标状态及对应的鼠标形状:#define CURSOR_STATE_COUNT 7enum CursorState{ cursorNormal = 0, cursorBeginSel, cursorSelect, cursorHover, cursorDrag, cursorLeave, cursorMovein,};static LPCTSTR cursorIcon[CU原创 2014-02-17 10:22:03 · 899 阅读 · 0 评论 -
内存泄露检测
点击打开链接http://wenku.baidu.com/link?url=QuXWLM8jBAcZu01szjyuTO2sDXDSimZ4kyIv2XrnF4zXfZ1lHirVnRSwDuaoYWhE1T2vSbshkUMerMWdembFqagRh2oMWVExea04m_ZHJ3_http://wenku.baidu.com/link?url=sUYNhZGEcWgzJ3mNO原创 2014-04-10 10:26:12 · 486 阅读 · 0 评论 -
窗口子类化
LRESULT DirectionWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ CButtonDirection* pWnd = (CButtonDirection*)CWnd::FromHandle(hWnd); switch (message) { case WM_LBUTTONDOWN: {原创 2014-03-19 17:06:19 · 608 阅读 · 0 评论 -
VS2008安装WTL项目模板
1. 下载WTL,http://sourceforge.net/projects/wtl ;2. 解压文件至目录D:\WTL90_4140_Final;3. 双击D:\WTL90_4140_Final\AppWiz\Setup.js进行安装;4. 打开VS,确定新建项目中出现WTL项目模板;5. 将D:\WTL90_4140_Final\Includ原创 2014-06-11 10:36:25 · 568 阅读 · 0 评论 -
ATL/WTL消息响应函数原型
// Handler prototypes (uncomment arguments if needed):// LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)// LRESULT CommandHandler(WORD /*wNotifyCode*/原创 2014-06-11 11:44:13 · 544 阅读 · 0 评论 -
多线程DLL(/MD/MT.....)(转)
选项说明/MD使应用程序使用运行时库的多线程并特定于 DLL 的版本。定义 _MT 和 _DLL,并使编译器将库名 MSVCRT.lib 放入 .obj 文件中。用此选项编译的应用程序静态链接到 MSVCRT.lib。该库提供允许链接器解析外部引用的代码层。实际工作代码包含在 MSVCR80.DLL 中,该库必须在运行时对于与 MSVCRT.lib转载 2013-10-26 13:53:26 · 1821 阅读 · 0 评论 -
初始化COM组件
CoInitialize(NULL); CLSID clsId = GUID_NULL; if (S_OK == CLSIDFromString(OLESTR("{C4E98946-B075-4C69-83BB-79C95FE5E00F}"), &clsId)) { ICStringModule* pICString= NULL; HRESULT hr = CoCreate原创 2013-06-29 09:45:23 · 571 阅读 · 0 评论 -
自定义Windows消息
先定义一个自定义消息const UINT WM_MY_MSG = ::RegisterWindowMessage(_T("2011-01-01 00:00:00")); // 参数就填你写这段代码时的时间即可.字符串本身没什么意义,填时间是为了避免与别人的代码冲突在头文件中定义响应函数HRESULT abc(WPARAM wParam, LPARAM lParam); //注意原创 2013-04-11 19:20:45 · 510 阅读 · 0 评论 -
注册和反注册dll链接库
// 注册BOOL CDllRegister::Register(CString strDll){ CString strLastErr = _T(""); BOOL bResult = FALSE; HMODULE hModule = ::LoadLibrary(strDll); if (LOADLIBRARY_FAILED(hModule))原创 2013-04-11 19:25:34 · 720 阅读 · 0 评论 -
程序版本信息
1. 从http://www.codeproject.com/Articles/7106/Increase-Build-Numbers-in-Visual-C-NET-using-Macro下载压缩包IncBuildNrMacro.zip。 2. 解压到目录C:\Users\HYWIE\Documents\VisualStudio 2008\Projects\V原创 2013-06-20 14:22:13 · 631 阅读 · 0 评论 -
使用MFC类CInternetSession和CFtpConnection构建FTP客户端
#pragma once#include #include #define FTP_DEFAULT_PORT 21struct FileProperty{ CString strFileName; // FILE_ATTRIBUTE_DIRECTORY // GetFileAttributes DWORD dwFileType;};class CYWFtpSessi原创 2013-06-25 22:42:08 · 5244 阅读 · 2 评论 -
简单的ATL COM组件
1. 新建->【ATL项目】->【动态链接库】。在dllmain.h中可以看到该dll的注册CLSID。DECLARE_REGISTRY_APPID_RESOURCEID(IDR_ATL_PROJECT, "{4575288C-5913-4A12-A1C3-28FB61DB86FE}")2. 【添加】->【类】->【ATL简单对象】。新增CoClass [原创 2013-06-28 11:11:21 · 987 阅读 · 0 评论 -
js调用COM组件示例
说明:可能需要对IE安全设置中的ActiveX控件和插件相关属性进行设置。(如果需要可以将COM组件进一步封装为ActiveX,实现ISafeObject安全接口,签名打包为EXE或CAB文件) 调用示例: function testCString() { try { var obj = newActiveXObject("atl_pr原创 2013-06-28 15:30:50 · 2779 阅读 · 0 评论 -
VC中COM组件的几种调用方式
方式一:#import导入dll库,利用VC提供的智能指针包装类 引入dll文件: #import "atl_project.dll" no_namespace调用示例: CoInitialize(NULL); ////////////////////////////////////////////////////////////// // CS原创 2013-06-28 14:09:54 · 1153 阅读 · 0 评论 -
检测ip地址是否为内网地址
#include #include #pragma comment(lib,"Iphlpapi")#pragma comment(lib,"WS2_32")/*** 检测remote_ip地址是否为内网ip** @return 1 是. * @return 0 否.*/int is_LAN(const char *remote_ip){ PIP_ADAPTER_INFO原创 2013-06-29 10:09:37 · 1035 阅读 · 0 评论