Dlg::OnInitDialog不執行,但DoModal成功了(出現了個對話框),這個是DLL工程,想不通請指教!





uj5u.com熱心網友回復:
MFC DLL 匯出函式 函式開始處添加 AFX_MANAGE_STATE 試試看extern "C" BOOL PASCAL EXPORT ExportedFunction()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
……
}
uj5u.com熱心網友回復:
前輩您好,現在成功顯示了,我是把這句加到執行緒函式里的,但現在有個問題請指教:工程是DLL,皮膚無法加載,如果是EXE檔案可以。實在是不清楚為啥
#include "SkinMagicLib.h"
#pragma comment(lib, "SkinMagic.lib")
CMyApp theApp;
CMyDialog MyDialog;
UINT WINAPI StartUpPlugin(LPVOID lpParameter)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
MyDialog.DoModal();
FreeLibraryAndExitThread(theApp.m_hInstance, 1);
return TRUE;
}
BOOL CMyApp::InitInstance()
{
CWinApp::InitInstance();
VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
VERIFY(1 == LoadSkinFromResource(theApp.m_hInstance, (LPCTSTR)IDR_SKINMAGIC, "SKINMAGIC"));
m_pMainWnd = &MyDialog;
VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "SKINMAGIC"));
VERIFY(1 == SetDialogSkin("Dialog"));
_beginthreadex(0, 0, _beginthreadex_proc_type(StartUpPlugin), 0, 0, 0);
return TRUE;
}
int CMyApp::ExitInstance()
{
// TODO: 在此添加專用代碼和/或呼叫基類
ExitSkinMagicLib();
return CWinApp::ExitInstance();
}
uj5u.com熱心網友回復:
沒用過這個皮膚插件, 網上看到有說不能使用UNICODE 編譯, 試試專案屬性中修改為多位元組轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/233232.html
標籤:基礎類
上一篇:如何重繪對話框界面
