1. 程式人生 > >vc++程式設計之在程式中加入網址連結

vc++程式設計之在程式中加入網址連結

       在vc++對話方塊程式設計中,我們處於某種需要(介紹自己的軟體或者自己的部落格)可以在對話方塊上增加一個網址連結,使用者只要一點選,就進入了相應的網頁,我在此演示下如何完成。

  1 開啟編譯器,我們新建一個基於對話方塊的工程(其他形式的也可以),我們以對話方塊為例,在資源檢視中去除原有的靜態文字控制元件,然後為對話方塊新增一個靜態文字框(注:其他控制元件也可以實現,例如編輯框控制元件,按鈕控制元件,都可以)。

  2 修改ID為IDC_MyBolg_STATIC,標題改為:“我的部落格“,最重要的一點就是一定要把,該控制元件的notify屬性改為true(否則無法對其新增響應函式),然後右鍵或者雙擊為該控制元件新增訊息響應函式,在其響應函式中新增如下程式碼即可。


其中我們用到了一個API函式,ShellExecute(),我們看下他的解釋。

c++的API定義如下:

ShellExecute的功能是執行一個外部程式(或者是開啟一個已註冊的檔案、開啟一個目錄、列印一個檔案等等),並對外部程式有一定的控制。

HINSTANCE ShellExecute(

    HWND hwnd,

    LPCTSTR lpOperation,

    LPCTSTR lpFile,

    LPCTSTR lpParameters,

    LPCTSTR lpDirectory,

    INT nShowCmd

);

         現在我要解釋下此函式的作用:

ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory:PChar; ShowCmd: Integer): HINST; stdcall;

  ●hWnd:用於指定父視窗控制代碼。當函式呼叫過程出現錯誤時,它將作為Windows訊息視窗的父視窗。例如,可以將其設定為應用程式主視窗

控制代碼,即Application.Handle,也可以將其設定為桌面視窗控制代碼(用GetDesktopWindow函式獲得)。

  ●Operation:用於指定要進行的操作。其中“open”操作表示執行由FileName引數指定的程式,或開啟由FileName引數指定的檔案或檔案

夾;“print”操作表示列印由FileName引數指定的檔案;“explore”操作表示瀏覽由FileName引數指定的資料夾。當引數設為nil時,表示執

行預設操作“open”。

  ●FileName:用於指定要開啟的檔名、要執行的程式檔名或要瀏覽的資料夾名。

  ●Parameters:若FileName引數是一個可執行程式,則此引數指定命令列引數,否則此引數應為nil或PChar(0)。

  ●Directory:用於指定預設目錄。

  ●ShowCmd:若FileName引數是一個可執行程式,則此引數指定程式視窗的初始顯示方式,否則此引數應設定為0。

若ShellExecute函式呼叫成功,則返回值為被執行程式的例項控制代碼。若返回值小於32,則表示出現錯誤。

現在說明一下此函式的開啟網頁的用法:如果將FileName引數設定為“http:”協議格式,那麼該函式將開啟預設瀏覽器並連結到指定的URL地址。若使用者機器中安裝了多個瀏覽器,則該函式將根據Windows 9x/NT登錄檔中http協議處理程式(Protocols Handler)的設定確定啟動哪個瀏覽器(即電腦的預設瀏覽器)

例如:ShellExecute(handle,'open', http:// ; www.zzu.edu.cn', nil, nil, SW_SHOWNORMAL);

那麼現在有一個疑問,就是我們沒有包含該函式的標頭檔案,卻可以使用它,這是因為我們所寫的是MFC程式,在windows.h中已經巢狀的包含了該函式,所以我們可以正常使用。

此時我們執行程式。點選靜態文字框,則彈出我們設定好的網頁。


相關推薦

vc++程式設計程式加入網址連結

       在vc++對話方塊程式設計中,我們處於某種需要(介紹自己的軟體或者自己的部落格)可以在對話方塊上增加一個網址連結,使用者只要一點選,就進入了相應的網頁,我在此演示下如何完成。   1 開啟編譯器,我們新建一個基於對話方塊的工程(其他形式的也可以),我們以對話

[VC++]如何在win32程式加入右擊選單並新增響應

0.先說一下如何在win32程式中開啟控制檯,複製以下程式碼即可: #include "io.h" #include "fcntl.h" void InitConsole() { int nRet= 0; FILE* fp; AllocConsole(); /

【學渣】字元匹配有限狀態自動機--應用在爬蟲程式匹配網址

關於自動機的原理的文章已經有很多了,我就不再多說了,我覺得很多部落格都寫的很好 我就寫一下在網址匹配方面的應用吧 其實很多人大都會選擇正則表示式  如果是有規律的匹配,應該有一個狀態轉移函式,但是我沒有為下圖找到規律,所以就用了最蠢的方法 如果是連續的輸入,比如ababab

修改執行緒名稱,並在VC偵錯程式顯示

#define MS_VC_EXCEPTION 0x406d1388typedef struct tagTHREADNAME_INFO{ DWORD dwType; // must be 0x1000 LPCSTR szName; // pointer to na

如何從 VC WebBrowser 應用程式呼叫指令碼函式

為了呼叫指令碼函式存在的網頁上,您必須使用自動化 ; 換句話說,IDispatch。 使用以下步驟來呼叫指令碼函式從 Visual C++ 應用程式的網頁上存在的: 獲取在 HTML 文件的 IDispatch。 呼叫利用 IDispatch:: GetIDsOfName

Java程式設計反射的註解詳解

“註解”這個詞,可謂是在Java程式設計中出鏡率比較高,而且也是一個老生常談的話題。我們之前在聊Spring相關的東西時,註解是無處不在,之前我們簡單的聊過一些“註解”的相關內容,比如在Spring中是如何進行“註解”組合的。因為註解在Java程式設計中還是比較重要的,所以我們今天的部落格就把註解的東西給系統

Qt程式設計Qt的核心機制

     本次內容主要為Qt中的一些核心機制,它們是構成Qt的基礎,包括物件模型、訊號和槽、屬性系統、物件樹與擁有權、元物件系統等。     1.物件模型     在已有的標準C++物件模型(可以

網路程式設計HTTPGET與POST請求

1 參考自w3schools給出一個“標準答案” GET比POST更不安全,因為引數直接暴露在URL上,所以不能用來傳遞敏感資訊; GET引數通過URL傳遞,POST放在Request body中; GET請求在URL中傳送的引數是有長度限制的,而POST沒有;

VC的控制檯程式顯示UNICODE字元

/* (1)顯示漢字寬字元,必須設定正確的區域程式碼。 顯示ASCII的UNICODE,則不是必須的 (2)寬字元的printf格式控制中,使用%wc(字元) %ws(字串) (3)wcout 不是 C++標準要求提供的成員 (4)L"中國" 是寬字元"中國",但不是一定是UNICODE"中國",視編譯器的實

Linux Qt程式設計——在程式啟動其他應用、指令碼

       我們在程式設計過程中,經常會遇到這樣的需求,點選一下按鈕,啟動另外一個應用程式,或者執行一個指令碼。你一定覺得這個多簡單啊,有什麼可寫的?其實實現同一個功能,不同的開發人員寫出的程式碼可能千差萬別,執行效率,容錯率,是否有唯一啟動保護等……當然,我們還是需要通過

在java應用程式加入聲音

    先說一下在 applet 中播放聲音檔案的一般步驟:    建立一個 AudioClip 物件   裝入 .au 或者wav的聲音檔案(或者後面所說的支援的型別)到 AudioClip 物件       下面是相應的程式碼:   import java.applet

Go Web 程式設計 程式結構

概述 一個典型的 Go Web 程式結構如下,摘自《Go Web 程式設計》: 客戶端傳送請求; 伺服器中的多路複用器收到請求; 多路複用器根據請求的 URL 找到註冊的處理器,將請求交由處理器處理; 處理器執行程式邏輯,必要時與資料庫進行互動,得到處理結果; 處理器呼叫模板引擎將指定的模板和上一步得到

vc++MCF/C++/C怎樣讓應用程式獲得或以管理員許可權執行 ,ShellExecuteEX程式設計 --- 獲取管理員許可權

怎樣讓你的應用程式獲得管理員許可權:就是在執行開發工具如vc6.0 或vs2010時,要以管理員身份執行,這樣你的應用程式才可以繼承 解決:在vs2010等開發工具中雖然以管理員身份編譯運行了程式,可以獲得管理員許可權,但是當單獨點選Debug或release版時,又

windows 核心程式設計在應用程式使用虛擬記憶體

Microsoft Windows 提供了以下三種機制來對記憶體進行操控: 虛擬記憶體 最適合用來管理大型物件陣列或大型結構陣列 記憶體對映檔案 最適合用來管理大型資料流(通常是檔案),以及在同一臺機器上執行多個程序之間共享資料 堆 最適合管理大量小型物件 本篇只討論第一

在應用程式使用虛擬記憶體——Windows核心程式設計學習手札十五

在應用程式中使用虛擬記憶體 ——Windows核心程式設計學習手札之十五 Windows提供了3種進行記憶體管理的方法: 1)虛擬記憶體,最適合用來管理大量物件或結構陣列; 2)記憶體對映檔案,最適合用

我的Android進階旅------>怎樣在多個LinearLayout加入分隔線

lai tex pre draw white 方法 utf == 技術分享 假設要適合於全部的Android版本號,能夠在多個LinearLayout放置用於顯示分隔線的View。比如,放一個ImageView組件。然後將其背景設為分隔線的顏色或圖像,分隔線

linux 核心模組程式設計LED驅動程式(六)

我使用的是tiny6410的核心板,板子如下,淘寶可以買到 為了不與板子上的任何驅動發生IO衝突,我使用CON1那一排沒用到的IO口,引腳如下   LED1 LED2 LED3 LED4

正則表示式C程式使用正則

POSIX規定了正則表示式的C語言庫函式,詳見regex(3)。我們已經學習了很多C語言庫函式的用法,讀者應該具備自己看懂man手冊的能力了。本章介紹了正則表示式在grep、sed、awk中的用法,學習要能夠舉一反三,請讀者根據regex(3)自己總結正則表示式在C語言中的用法,寫一些簡單的程式,例

Android獲取圖片資源 拍照後在程式顯示照片

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

程式設計旅-Ext4.X匯入excel表格在grid顯示

1:關於匯入excel就不說了 網上很多教程,關鍵是在ext grid中顯示問題,其實就是對Ext的瞭解和api熟悉程度不高。 目前在ext中匯入excel嘗試通過了兩種方法。 需求:匯入excel 在Ext grid中顯示 然後點選按鈕確定是否儲存(後臺做資料驗證,固定列名) 分析需求