Phos控制臺的GUI組件
當(dāng)我們使用 C語言或者匯編語言開發(fā)非托管的 Windows 應(yīng)用程序時,開發(fā)工具的鏈接器會生成基于控制臺的應(yīng)用或者是 Windows 類型的可執(zhí)行程序。而基于控制臺的應(yīng)用程序在運行的時候,其標(biāo)題顯示的是 CMD.EXE 程序的信息,而真正的 Windows 應(yīng)用則可以通過調(diào)用 Win32 API 來設(shè)置窗口的標(biāo)題欄。如下圖所示:
而這兩種方法對很多開發(fā)者來說都是沒有必要的,他們只開發(fā)控制臺的應(yīng)用,又不想顯示 CMD.EXE 信息。而 Phos 就是幫你完成這個工作的。
示例代碼(源碼下載):
#include <stdio.h>
#include <stdlib.h>
#include "phos.h"
///////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
{
HICON hIco;
hInstMain = GetModuleHandle(NULL);
// if you don't provide an icon, pass NULL
// to use phos default icon from DLL
hIco = LoadIcon( hInstMain, MAKEINTRESOURCE(APP_ICON) );
if (load_DLL_functions()) {
pfn_phos_start_window( phos_thread_func,
phos_init_callback,
phos_exit_callback,
hIco );
}
return 0;
}
// phos_init_callback() is called once, when the phos console
// window is displayed (WM_CREATE handler)
void phos_init_callback ( HANDLE hWin, HANDLE hInstDll )
{
pfn_phos_set_caption( "Test" );
pfn_phos_set_colorscheme ( PETROL_GREEN );
pfn_phos_printstr("phOS Win32 CP1252/VGA", 0xFFFFFF, 0);
pfn_phos_vscroll();
pfn_phos_printstr("type 'exit' to quit", 0xFFFFFF, 0);
pfn_phos_vscroll();
}
///////////////////////////////////////////////////////////////////////////////
// phos_exit_callback() is called once, when the phos console
// window is about to close (WM_DESTROY handler)
void phos_exit_callback()
{
}評論
圖片
表情
