VC大漠实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MFC VC++ (VS2010) 调用大漠插件实例
小工具源代码:
隐藏鼠标指定的窗口,显示时要求输入密码:119
MiniTool.cpp 部分:
// MiniTool.cpp : 定义应用程序的类行为。
//
#include "stdafx.h"
#include "MiniTool.h"
#include "MiniToolDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMiniToolApp
BEGIN_MESSAGE_MAP(CMiniToolApp, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// CMiniToolApp 构造
CMiniToolApp::CMiniToolApp()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在InitInstance 中
}
// 唯一的一个CMiniToolApp 对象
CMiniToolApp theApp;
// CMiniToolApp 初始化
BOOL CMiniToolApp::InitInstance()
{
// 如果一个运行在Windows XP 上的应用程序清单指定要
// 使用ComCtl32.dll 版本6 或更高版本来启用可视化方式,//则需要InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("MiniTool by liuh"));
WinExec("regsvr32.exe dm.dll /s",SW_SHOW);//注册dm.dll,如果dm.dll为当前程序目录相对路径,则直接写dm.dll即可。
CMiniToolDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
// “确定”来关闭对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用
// “取消”来关闭对话框的代码
}
// 由于对话框已关闭,所以将返回FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}
Dlg.cpp部分:
// MiniToolDlg.cpp : 实现文件
#include "stdafx.h"
#include "MiniTool.h"
#include "MiniToolDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的CAboutDlg 对话框
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CMiniToolDlg 对话框
CMiniToolDlg::CMiniToolDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMiniToolDlg::IDD, pParent)
, MyWinHWND(0)
, passwd(0)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMiniToolDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, passwd);
}
BEGIN_MESSAGE_MAP(CMiniToolDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_HOTKEY,MyHotKey)
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_BUTTON1, &CMiniToolDlg::OnBnClickedButton1) END_MESSAGE_MAP()
// CMiniToolDlg 消息处理程序
BOOL CMiniToolDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{