BOOL CHelperDlg::OnInitDialog() { CDialog::OnInitDialog(); // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // Reposition all controls //CRect rect; //m_treeItems.GetClientRect(&rect); //m_nLeftWidth = rect.Width(); m_nLeftWidth = 158; //RepositionDlg(); COLORREF clr(RGB(255, 0, 255)); m_CloseBtn.SetBitmaps(IDB_CLOSE_LIGHT, clr, IDB_CLOSE_NORMAL,clr); m_CloseBtn.DrawBorder(FALSE); m_CloseBtn.SetWindowText(L""); m_MiniBtn.SetBitmaps(IDB_MINI_LIGHT, clr,IDB_MINI_NORMAL,clr); m_MiniBtn.DrawBorder(FALSE); m_MiniBtn.SetWindowText(L""); m_AlwaysOnTop.SetBitmaps(IDB_PIN_LIGHT,clr,IDB_PIN_NORMAL,clr); m_AlwaysOnTop.DrawBorder(FALSE); m_AlwaysOnTop.SetWindowText(L""); // Add hook control btn(Caption button) // static CImageList s_ilPin; // s_ilPin.Create(IDB_BITMAP_PIN, 16, 5, RGB(255, 255, 255)); // AddButton(ID_BUTTON_PIN, 16, 16, s_ilPin.m_hImageList, "Stay visible"); // OnPinButtonPushed(); // Add standard icons m_treeItems.AddIcon(AfxGetApp()->LoadIcon(IDI_ICON_FOLDER_CLOSE)); m_treeItems.AddIcon(AfxGetApp()->LoadIcon(IDI_ICON_FOLDER_OPEN)); m_treeItems.AddIcon(AfxGetApp()->LoadIcon(IDI_ICON_DOCUMENT)); if(g_nCodePage==1258) { m_font.CreateFont( 14, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_STROKE_PRECIS, CLIP_STROKE_PRECIS, DRAFT_QUALITY, VARIABLE_PITCH | FF_SWISS, _T("Arial") ); m_treeItems.SetFont(&m_font); } // Refresh item list RefreshHelpItems(); // Go to blank page m_webHelper.Navigate(L"about:blank", 0, 0, 0, 0); //取得IcustomDoc接口 //ICustomDoc* pCustDoc = 0; //m_webHelper.get_Document()->QueryInterface(&pCustDoc); //if(pCustDoc) //{ // pCustDoc->SetUIHandler(new HelperDocHostUIHandler()); // pCustDoc->Release(); //} ///设置对话框的背景图片 SetBitmapStyle(StyleTile); SetBitmap(IDB_BITMAP_NEWBKG); switch(m_CurShow) { case FLAG_SHOW_HELP: //m_StaTile.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP_TITLE))); m_StaTile.ShowWindow(SW_SHOW); m_StaRank.ShowWindow(SW_HIDE); SetWindowText(getInnerString(ISI_TITLE_HELPER)); break; case FLAG_SHOW_PAIHANG: m_StaTile.ShowWindow(SW_HIDE); m_StaRank.ShowWindow(SW_SHOW); //m_StaTile.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP_TITLE))); SetWindowText(getInnerString(ISI_TITLE_PAIHANGBANG)); break; default: m_StaTile.ShowWindow(SW_SHOW); m_StaRank.ShowWindow(SW_HIDE); //m_StaTile.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP_TITLE))); SetWindowText(getInnerString(ISI_TITLE_HELPER)); break; } CenterWindow(); m_staSplitVer.ShowWindow(SW_HIDE); ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW); return TRUE; // 除非设置了控件的焦点,否则返回 TRUE }
BOOL CDlg_Cfg_Integrate::OnInitDialog() { CDialog::OnInitDialog(); TD_SetWindowTextW(GetDlgItem(IDC_STATIC_SYSTEM_GROUP)->GetSafeHwnd(), getInnerString(INNER_XI_TONG_XIN_XI)); TD_SetWindowTextW(GetDlgItem(IDC_STATIC_SETTING_GROUP)->GetSafeHwnd(), getInnerString(INNER_YOU_XI_SHE_ZHI)); TD_SetWindowTextW(GetDlgItem(IDC_RADIO_SET_DEF)->GetSafeHwnd(), getInnerString(INNER_SETTING_DEF_DESC)); TD_SetWindowTextW(GetDlgItem(IDC_RADIO_SET_LOW)->GetSafeHwnd(), getInnerString(INNER_SETTING_LOW_DESC)); TD_SetWindowTextW(GetDlgItem(IDC_RADIO_SET_MIDDLE)->GetSafeHwnd(), getInnerString(INNER_SETTING_MID_DESC)); TD_SetWindowTextW(GetDlgItem(IDC_RADIO_SET_HIGH)->GetSafeHwnd(), getInnerString(INNER_SETTING_HIGH_DESC)); CreateLinkFont(GetSafeHwnd()); static AX_URL_LNK g_TipsLink = { "1", NULL, TRUE, 0, getInnerString(INNER_STRING_ZHU_YI), }; HWND hTipsWnd = GetDlgItem(IDC_STATIC_TIPS)->GetSafeHwnd(); // ::GetWindowText(hTipsWnd, g_TipsLink.szText, 32); SetWindowLong(hTipsWnd, GWL_USERDATA, (LONG)(LONG_PTR)(&g_TipsLink)); g_TipsLink.m_oldWndProc = (WNDPROC)(LONG_PTR)SetWindowLong(hTipsWnd, GWL_WNDPROC, (LONG)(LONG_PTR)StaticLnkWndProc); // TODO: Add extra initialization here CtConfigDlg* pMainWnd = (CtConfigDlg*)(AfxGetApp()->GetMainWnd()); if(pMainWnd) { TD_SetWindowTextW(GetDlgItem(IDC_EDIT_INFO)->m_hWnd, gHardwareInfoSystem.getHardwareInfoAsString()); } //Init tooltip m_tooltips.Create(this, TTS_NOPREFIX | TTS_ALWAYSTIP); m_tooltips.SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); m_tooltips.ShowWindow(SW_SHOW); RECT rect; GetDlgItem(IDC_STATIC_TIPS)->GetClientRect(&rect); /* INITIALIZE MEMBERS OF THE TOOLINFO STRUCTURE */ TOOLINFO ti; ti.cbSize = sizeof(TOOLINFO); ti.uFlags = TTF_SUBCLASS; ti.hwnd = GetDlgItem(IDC_STATIC_TIPS)->GetSafeHwnd(); ti.hinst = 0;//AfxGetApp()->m_hInstance; ti.uId = 0; ti.lpszText = (LPWSTR)getInnerString(INNER_SET_TIPS_DESC); // ToolTip control will cover the whole window ti.rect.left = rect.left; ti.rect.top = rect.top; ti.rect.right = rect.right; ti.rect.bottom = rect.bottom; /* SEND AN ADDTOOL MESSAGE TO THE TOOLTIP CONTROL WINDOW */ m_tooltips.SendMessage(TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); m_tooltips.SetMaxTipWidth(220); m_tooltips.SetDelayTime(TTDT_AUTOPOP, 1000000); m_tooltips.SetDelayTime(TTDT_INITIAL, 0); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CHelperDlg::Refresh(FLAG_SHOW ShowWhat) { static int firstIn = 0; if(!firstIn) { m_CurShow = ShowWhat; Create(MAKEINTRESOURCE(g_nCodePage==1258 ? IDD_VN : IDD)); firstIn++; } if(m_CurShow!=ShowWhat) { m_CurShow = ShowWhat; RefreshHelpItems(); m_webHelper.Navigate(L"about:blank", 0, 0, 0, 0); SetBitmapStyle(StyleTile); switch(ShowWhat) { case FLAG_SHOW_HELP: m_StaTile.ShowWindow(SW_SHOW); m_StaRank.ShowWindow(SW_HIDE); SetWindowText(getInnerString(ISI_TITLE_HELPER)); break; case FLAG_SHOW_PAIHANG: m_StaTile.ShowWindow(SW_HIDE); m_StaRank.ShowWindow(SW_SHOW); SetWindowText(getInnerString(ISI_TITLE_PAIHANGBANG)); break; default: m_StaTile.ShowWindow(SW_SHOW); m_StaRank.ShowWindow(SW_HIDE); SetWindowText(getInnerString(ISI_TITLE_HELPER)); break; } //CenterWindow(); } DWORD ThreadID1; DWORD ThreadID2; BOOL nRet =0; if(this->m_hWnd == ::GetForegroundWindow()) { } else { ThreadID1 =::GetWindowThreadProcessId(m_hWnd,NULL); ThreadID2 =::GetWindowThreadProcessId(m_hWnd,NULL); if(ThreadID1!=ThreadID2) { ::AttachThreadInput(ThreadID1, ThreadID2, true); nRet=::SetForegroundWindow(m_hWnd); ::AttachThreadInput(ThreadID1, ThreadID2, false); } else { nRet=::SetForegroundWindow(m_hWnd); } } if(!nRet) { bool bAlwaysTop = (GetWindowLong(m_hWnd, GWL_EXSTYLE) & WS_EX_TOPMOST)!=0; // CheckButton(0, bAlwaysTop); if(bAlwaysTop) { ::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); } else { ::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); ::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); } } if(this->IsIconic()) { this->ShowWindow(SW_RESTORE); } else this->ShowWindow(SW_SHOW); this->CenterWindow(); if(ShowWhat==FLAG_SHOW::FLAG_SHOW_PAIHANG) { //设置选中项 CHelperItem* pItem = CHelperSystem::GetMe()->GetHelpItemSet()->GetRootItem(); CHelperItem::ChildBuf& theChild = pItem->GetChildBuf(); //if(!theChild) return; CHelperItem::ChildBuf::iterator it=theChild.begin(); //goto item HTREEITEM hItem = (HTREEITEM)((*it).GetUserData()); if(0 == hItem) return; ((CHelperDlg*)AfxGetApp()->GetMainWnd())->GotoHelperItem(hItem); } }
BOOL CtConfigApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControls()。否则,将无法创建窗口。 InitCommonControls(); CWinApp::InitInstance(); AfxEnableControlContainer(); //首先检测DirectX版本号 const wchar_t *szDxNeed = L"4.09.00.0904"; std::string strDxNeed; // 获取dx版本 const wchar_t* szCurrentDXVersion = gHardwareInfoSystem.getDXVersion(); if(szCurrentDXVersion[0]==0 || wcscmp(szDxNeed, szCurrentDXVersion) > 0) { CDirectXErrorDlg dlg; dlg.DoModal(); mExitCode = 0xC0DE; return FALSE; } const char* szCmdLine = GetCommandLineA(); //从游戏运行 if(strstr(szCmdLine, "-fg") != 0) g_bRunFromGame = TRUE; // 获取其他硬件信息 gHardwareInfoSystem.initSystem(); // 判断当前显存是否足够 const float RequiredVideoMemory = 32.0f; const float currentFreeVideoMemory = gHardwareInfoSystem.getHardwareInfo().mFreeLocalVideoMemory; if ( currentFreeVideoMemory < RequiredVideoMemory ) { wchar_t errorInfoStr[MAX_PATH]={0}; _snwprintf(errorInfoStr, MAX_PATH, getInnerString(INNER_LOW_VIDEO_MEMORY), currentFreeVideoMemory, RequiredVideoMemory ); if ( IDNO == TD_MessageBoxW( NULL, errorInfoStr, getInnerString(INNER_TITLE), MB_YESNO|MB_ICONQUESTION ) ) { mExitCode = 0xC0DE; return FALSE; } } // 检测显卡驱动版本号 //const std::string& validateInfoString = gHardwareInfoSystem.validateVideoDriver(); //if (false == validateInfoString.empty()) //{ // MessageBox(NULL, validateInfoString.c_str(), "《天龙八部》配置程序", MB_OK | MB_ICONERROR); //} //第一次运行 DWORD dwType, dwSize=sizeof(DWORD), dwValue=0; SHGetValueA(HKEY_LOCAL_MACHINE, "SOFTWARE\\SOHU\\FireFox\\TLBB", "RunConfig", &dwType, &dwValue, &dwSize); g_bFirstRun = (dwValue != 1); //写运行标志 dwValue = 1; SHSetValueA(HKEY_LOCAL_MACHINE, "SOFTWARE\\SOHU\\FireFox\\TLBB", "RunConfig", REG_DWORD, &dwValue, sizeof(DWORD)); //从游戏运行而且也不是第一次运行,退出 if(g_bRunFromGame && !g_bFirstRun) return FALSE; //填充推荐配置 FillCommendCfg(); //如果是第一次运行, 删除个人配置文件 if(g_bFirstRun) { g_theGameConfigs.DeletePrivateFile(); } //加载所有配置文件 g_theGameConfigs.LoadAllConfigFile(); if(!g_theGameConfigs.GetLastestConfig()) { TD_MessageBoxW(NULL, getInnerString(INNER_CANT_OPEN), getInnerString(INNER_TITLE), MB_OK|MB_ICONSTOP); return FALSE; } CtConfigDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用“确定”来关闭 //对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用“取消”来关闭 //对话框的代码 } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }