2012-02-10 39 views
4

私は以下のコードを用意しています。このウィンドウが表示される位置を決める方法があるかどうかは誰にも分かりますか?たとえば、ユーザーがクリックした場所に表示するには?Delphiでヘルプポップアップウィンドウの位置を変更するにはどうすればよいですか?

function HelpPopupWindow(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean; 
var 
    dwIDs: array[0..3] of DWord; 
begin 
    dwIDs[0] := Handle; 
    dwIDs[1] := Data; 
    dwIDs[2] := 0; 
    dwIDs[3] := 0; 

    HtmlHelp(Handle, PChar('HELP FILE LOCATION HERE::/cshelp.txt'), HH_TP_HELP_CONTEXTMENU, DWORD(@dwIDs[0])); 

    CallHelp := False; 
end; 

乾杯

ポール

答えて

2

あなたがポップアップヘルプを表示するには、HH_DISPLAY_TEXT_POPUPを使用する必要があります。これにより、渡した構造のHH_POPUPによって柔軟性が向上します。 ptフィールドを使用して位置を指定します。

ポップアップウィンドウの中央の位置を指定します(ピクセル単位)。実際に

{Show HH Popup using a string (StringID) from text file in a CHM 
StringID: eg. 99; CHMTextFile: eg. _runDir + 'help.chm::/cshelp.txt'} 
function HH_ShowPopupHelp3(aParent: TForm; StringID: Integer; 
    CHMTextFile: String; XYPos: TPoint): HWND; 
var hhpopup: HH.THHPopup; 
begin 
    with hhpopup do 
    begin 
    cbStruct := sizeof(hhpopup); //sizeof this structure 
    hinst := 0; //no used 
    idString := StringID; //topic number in a text file. 
    pszText := nil; //no used 
    pt := XYPos; //top center of popup 
    clrForeground := COLORREF(-1); //use -1 for default - RGB value 
    clrBackground := COLORREF(-1); //use -1 for default - RGB value 
    rcMargins := Rect(-1,-1,-1,-1);//amount of space between edges 
    pszFont := ''; 
    end; 
    Result := HtmlHelp(aParent.Handle, PChar(CHMTextFile), 
    HH_DISPLAY_TEXT_POPUP, DWORD(@hhpopup)); 
end; 

は、私はすでにあなたのコードでこのページの判定を見つけたと思うが、ちょうどページのさらに下ビットを読み取るために必要な:

Helpwareサイトでは、いくつかのサンプルDelphiのコードを示します。

+0

こんにちはDavid、私はこのコードを見ましたが、THHPopupがどこに定義されているのかわかりません。 – Paul

+0

Windows.pasからダウンロードしてください。それはTHH_Popupと呼ばれています。 –

+0

ありがとうございました! – Paul

関連する問題