万捷博客

万捷博客
一个知识汇聚的地方
首页 » c++ » C++在DLL中调用资源文件的Dialog窗口

C++在DLL中调用资源文件的Dialog窗口

工具:VS2019

实现功能:C++编写的DLL,通过CreateDialog载入资源中的窗口,获取窗口上编辑框IDC_EDIT1里面的内容,以达到给DLL加窗口功能的目的。

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include "resource.h"
#include <string>
#include <atlstr.h>//CString
#include <sstream>


HINSTANCE hinst = NULL;
HWND hwndDLG = NULL;
using namespace std;

//窗口监听事件
BOOL CALLBACK DlgProc(HWND hDlg, UINT message,
    WPARAM wParam, LPARAM lParam)
{
    CString strText = "1234";
   
    switch (message)
    {
    case WM_INITDIALOG:
        SetDlgItemText(hDlg, IDC_EDIT1, strText);//设置内容
        return TRUE;
    case WM_COMMAND:

        //IDOK是资源控件的ID
        if (LOWORD(wParam) == IDOK) {

            //这里可以写具体的按钮功能代码
           MessageBoxA(NULL, "点击了IDOK按钮", "提示", NULL);

           HWND ID = GetDlgItem(hDlg, IDC_EDIT1);//获取控件IDC_EDIT1的ID
           int len = GetWindowTextLength(ID);//获取内容长度
           char* str = new char[len+1];
           GetWindowText(ID, (LPWSTR)str, len+1);//获取内容
           MessageBoxA(NULL, (LPCSTR)str, "获取到编辑框IDC_EDIT1的内容", NULL);

        }
        else {
            //这里可以写具体的按钮功能代码
           // MessageBoxA(NULL, "操作了其他控件", "提示", NULL);
        }

        return TRUE;
    case WM_CLOSE:
        //窗口销毁
        DestroyWindow(hDlg);
        hwndDLG = NULL;
        return TRUE;
    }
    return FALSE;
}

//显示资源窗口,调用此接口即可载入资源窗口
void ShowDlg()
{   //创建对话框
    hwndDLG = CreateDialog(hinst, MAKEINTRESOURCE(IDHELP),
        NULL, (DLGPROC)DlgProc);
    //显示窗口
    ShowWindow(hwndDLG, SW_SHOW);

}

BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{

    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        hinst = (HINSTANCE)hModule;
        ShowDlg();
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

文章如无特别注明均为原创! 作者: admin, 转载或复制请以 超链接形式 并注明出处 万捷博客
原文地址《 C++在DLL中调用资源文件的Dialog窗口》发布于2020-2-6

打赏作者

评论

游客

看不清楚?点图切换
切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册