想要用wxUniversal本来是因为想弄个可以改变颜色的进度条wxGauge,用了SetBackgroundColour(),放进代码中一用,咦,颜色没改变,clean后再编译,还是没变。后来明白这是wxWidgets默认用了native控件,改不了,这就和java用了windowsLookAndFeel后没法改进度条颜色一样。后来了解到wxUniversal下各个控件的颜色外观可以自己控制,于是想用wxUniversal,无奈网上有关资料太少,今天终于配置完,赶紧记下来备忘。
编译:
动态链接,debug版
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug WXUNIV=1 SHARED=1 UNICODE=1 MONOLITHIC=0 USE_RTTI=0
动态链接,release版
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release WXUNIV=1 DEBUG_INFO=0 SHARED=1 UNICODE=1 MONOLITHIC=0 USE_RTTI=0
静态,release版
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release WXUNIV=1 DEBUG_INFO=0 SHARED=0 UNICODE=1 USE_RTTI=0
静态 ,debug版
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug WXUNIV=1 SHARED=0 UNICODE=1 USE_RTTI=0
最好注意编译是否有失败的地方,如果有,回头重新编译一下
在codeblocks下右键点击工程,compiler flags 勾选/Zi,/MDd
在右侧的other options,添加
/TP
/EHsc
/Fo"Debug\\"
/nologo
/c
/errorReport:prompt
在#defines,添加
"__WXDEBUG__"
"WIN32"
"_DEBUG"
"__WXMSW__"
"__WXUNIVERSAL__"
"_WINDOWS"
"NOPCH"
"_UNICODE"
"UNICODE"
在linker settings 中,debug版本需要的库如下
msvcprtd.lib
msvcrtd.lib
wxmswuniv29ud_core.lib
wxbase29ud.lib
wxpngd.lib
wxzlibd.lib
右侧的other linker settings添加
/NODEFAULTLIB:libcpmtd.lib
/NODEFAULTLIB:libcmtd.lib
/NODEFAULTLIB:msvcrt.lib
在search directories中
compiler:C:\wxWidgets-2.9.4\lib\vc_dll\mswunivud
linker:C:\wxWidgets-2.9.4\lib\vc_dll
resource compiler:C:\wxWidgets-2.9.4\lib\vc_dll\mswunivud
到现在为止wxUniversal环境以及配置好了,在自己的进度条后面加上
m_gauge->SetBackgroundColour(*wxBLUE);
m_gauge->SetValue(50);
果然颜色变了!