使用HTML/ASP做軟體的介面

來源:互聯網
上載者:User

     一般我們做程式,比如用VC,開發介面是個頭痛的問題。開發效率太低,而且做出來的效果也太差了。看起來太不美觀專業了。另一方面HMTL做介面是又方便又美觀,且還天生支援script指令碼。非常強大啊。我們一般使用html的時候都是做的B/S結構的軟體,需要一個WEB伺服器。這樣呢,單機程式似乎就無法享受到HTML的方便和快捷了。其實不然,方案有2種,一種是在本地載入html,這種方案很差,因為我們無法利用web伺服器強大的Respose/requeset/server對象,而只能在代碼中大量充斥判斷字串的代碼,那樣放到工作量加大了。另一個中方案就是使用本地的web伺服器,比如說apache就是公開原始碼的,可以自己修改成一個精簡進入你自己的工程當中去提供服務。當然apache伺服器代碼量太大了點,其他大家可以找一些開源的asp web伺服器代碼,如果自己實現一個也不太複雜,但是也肯定有一定工作量的。這個也就算這種方案最核心的工作了。

   下面就可以在自己的工程裡直接開一個html表單了,代碼如下:(注意編譯的時候記得使用_stdcall方式)

HINSTANCE hinstMSHTML = LoadLibrary(TEXT("MSHTML.DLL"));
    typedef  HRESULT  (*FunSHOWMODELESSHTMLDIALOGFN)(
        HWND hwndParent,
        IMoniker *pMk,
        VARIANT *pvarArgIn,
        WCHAR *pchOptions,
        IHTMLWindow2 **ppWindow
        );
    ::CoInitialize(0) ;
    IHTMLWindow2 * iwnd = 0;
    if (hinstMSHTML)
    {
        FunSHOWMODELESSHTMLDIALOGFN pfnShowModelessHTMLDialog;
        pfnShowModelessHTMLDialog = (FunSHOWMODELESSHTMLDIALOGFN)GetProcAddress(hinstMSHTML,
            TEXT("ShowModelessHTMLDialog"));
        if (pfnShowModelessHTMLDialog)
        {
            IMoniker *pURLMoniker;
            BSTR bstrURL = SysAllocString(L"http://127.0.0.1/index.html");
            CreateURLMoniker(NULL, bstrURL, &pURLMoniker);
            if (pURLMoniker)
            {
//                DWORD dwFlags = HTMLDLG_MODELESS | HTMLDLG_VERIFY;
                pfnShowModelessHTMLDialog(NULL, pURLMoniker, NULL, NULL, &iwnd);
                pURLMoniker->Release();
            }
            SysFreeString(bstrURL);
        }
        FreeLibrary(hinstMSHTML);
    }

注意你得到了 IHTMLWindow2 介面後面發揮的空間就出來了。

當然用 ShowHTMLDialogEx 也可以。

剩下工作就簡單了,只管開發你自己的asp後台就行了。 做出來的程式又美觀開發起來又快捷。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.