Phos - 控制台的GUI组件


未知
Windows
C/C++

软件简介

当我们使用 C语言或者汇编语言开发非托管的 Windows 应用程序时,开发工具的链接器会生成基于控制台的应用或者是 Windows
类型的可执行程序。而基于控制台的应用程序在运行的时候,其标题显示的是 CMD.EXE 程序的信息,而真正的 Windows 应用则可以通过调用 Win32
API 来设置窗口的标题栏。如下图所示:

而这两种方法对很多开发者来说都是没有必要的,他们只开发控制台的应用,又不想显示 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()  
{  
}