GTK+學習筆記1
1.將使用控制檯建立的GTK+工程專案中的控制檯視窗去掉
a.)將工程設定中[C/C++]/[Preprocessor definitions]中的“_CONSOLE”改為
“_WINDOWS”
b).將工程設定中[Link]/[Project Option]中的 "/subsystem:console" 改為
“/subsystem:windows”
c).將main函式改為
#if defined(G_OS_WIN32) && defined(_WINDOWS)
//Windows平臺沒有windows控制檯視窗
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
#else
//windows平臺控制檯或Linux 平臺
int main(int argc, char* argv[])
#endif
{
#if defined(G_OS_WIN32) && defined(_WINDOWS)
//去掉控制檯輸出
gtk_init(&__argc, &__argv);
/* We don't want a console window.. */
/*
* Any calls to the glib logging functions, result in a call to AllocConsole().
* ME and 98 will in such cases produce a console window(2000 not), despite
* being built as a windows app rather than a console app. So we should either
* ignore messages by setting dummy log handlers, or redirect messages.
* This requires setting handlers for all domains(any lib which uses g_logging).
*/
g_log_set_handler(NULL,(GLogLevelFlags) (G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), DrCOM_dummy_log_handler, NULL);
g_log_set_handler("Gdk",(GLogLevelFlags)(G_LOG_LEVEL_MASK| G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), DrCOM_dummy_log_handler, NULL);
g_log_set_handler("Gtk",(GLogLevelFlags)(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION),
DrCOM_dummy_log_handler, NULL);
g_log_set_handler("GLib",(GLogLevelFlags)(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION),
DrCOM_dummy_log_handler, NULL);
g_log_set_handler("GModule",(GLogLevelFlags)(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION),
DrCOM_dummy_log_handler, NULL);
g_log_set_handler("GLib-GObject",(GLogLevelFlags)(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION),
DrCOM_dummy_log_handler, NULL);
g_log_set_handler("GThread",(GLogLevelFlags)(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION),
DrCOM_dummy_log_handler, NULL);
/* g_print also makes a call to AllocConsole(), therefore a handler needs to be
set here aswell */
g_set_print_handler( DrCOM_dummy_print );
#else
gtk_init(&argc, &argv);
#endif
gtk_main();
return 0;
}
#ifdef G_OS_WIN32
static void DrCOM_dummy_print( const gchar* string )
{
return;
}
static void DrCOM_dummy_log_handler (const gchar *domain,
GLogLevelFlags flags,
const gchar *msg,
gpointer user_data)
{
return;
}
#endif
相關文章
- 學習筆記1筆記
- 學習筆記-1筆記
- swift學習筆記《1》Swift筆記
- Vue學習筆記1Vue筆記
- Numpy學習筆記 1筆記
- HTML學習筆記1HTML筆記
- flex:1學習筆記Flex筆記
- Numpy學習筆記(1)筆記
- SLAM學習筆記(1)SLAM筆記
- Oracle學習筆記1Oracle筆記
- mysql學習筆記-1MySql筆記
- Zynq學習筆記(1)筆記
- scapy學習筆記(1)筆記
- Git—學習筆記1Git筆記
- perl學習筆記1筆記
- Oracle學習筆記-1Oracle筆記
- git學習筆記 1Git筆記
- HTML學習筆記(1)HTML筆記
- git學習筆記1Git筆記
- golang 學習筆記1Golang筆記
- Scrapy 框架 (學習筆記-1)框架筆記
- React學習筆記1—起步React筆記
- webpack1學習筆記Web筆記
- hibernate學習筆記(1)筆記
- python學習筆記(1Python筆記
- ADworld學習筆記(1)筆記
- spring學習筆記(1)Spring筆記
- Android學習筆記(1)Android筆記
- PhoneGap學習筆記1筆記
- Linux學習筆記1Linux筆記
- hibernate學習筆記 1筆記
- 機器學習的學習筆記1機器學習筆記
- PL/SQL學習筆記-1SQL筆記
- ruby 字串學習筆記1字串筆記
- Flex學習筆記(Day 1)Flex筆記
- oracle 學習筆記---效能優化學習(1)Oracle筆記優化
- Java 學習筆記--Day1Java筆記
- Vue(1)之—— Vuex學習筆記Vue筆記