在MFC编程中,可以通过以下方法设置程序的外观:
使用皮肤库
可以使用SkinPlusPlusDLL.lib库文件和CoolSkye.ssk皮肤包来修改程序的外观。
修改窗口标题和样式
在`BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)`函数中,可以通过修改`CREATESTRUCT`结构体的`style`成员来改变窗口的标题和样式。例如,要移除默认的文档标题添加到窗口标题上,可以使用`style &= ~FWS_ADDTOTITLE`。
在窗口创建后,可以使用`SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE) & ~WS_MAXIMIZEBOX)`来修改窗口的样式。
修改光标和背景
在`PreCreateWindow`函数中,可以通过重新注册窗口类来修改光标和背景。例如,设置`CREATESTRUCT`的`lpszClass`为新注册的窗口类名,并在新类中设置光标和背景。
在`OnCreate`函数中,可以使用`SetClassLong(m_hWnd, GCL_HICON, (LONG)m_hIcon[index])`来设置窗口类的图标。
修改EXE图标
在资源视图中删除`IDR_MAINFRAME`和`IDR_ICONTETYPE`,然后添加新的图标文件。如果新图标文件名不是`IDR_MAINFRAME`,则需要在程序中修改相应的代码,例如在构造函数中修改`m_hIcon`的加载路径。
自定义控件外观
可以创建一个继承自`CComboBox`的新类,并重写`OnDrawItem`和`OnMeasureItem`函数来自定义绘制和测量行为。在这些函数中,可以使用`CDC`对象来绘制和测量文本、背景,并设置字体、背景色和文本颜色。
修改对话框外观
可以通过在`PreCreateWindow`函数中修改`CREATESTRUCT`结构体来改变对话框的窗体模式、标题、状态和透明度等。
使用Visual Studio 2010的兼容性
如果在将VC6.0工程用VS2010打开时,界面风格是Windows 2000风格,可以在`stdafx.h`头文件中添加或修改以下指令来更改为系统默认风格:
```cpp
ifdef _UNICODE
if defined _M_IX86
pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='en-us' ")
elif defined _M_X64
pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='en-us' ")
else
pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='en-us' ")
endif
endif
```
重绘对话框
可以通过在`StdAfx.cpp`中添加代码来重绘对话框,例如创建一个`CBitmapEx`对象,并使用`CDC`对象来绘制和测量对话框内容。
这些方法可以帮助你自定义MFC应用程序的外观,使其更符合你的设计需求。