• ベストアンサー

htmlのハイパーリンクをwin32apiで

htmlのハイパーリンクをwin32apiで win32apiのアプリケーションにhtmlのハイパーリンクのようなコントロールを入れたいのですが、コモンコントロールにそういう物がないか探してみても見つかりません。 スタティックコントロールにあれこれ手を加えて自作するくらいしか方法はないのでしょうか? 沢山見るコントロールなだけに、win32apiの方でハイパーリンクコントロールを実現する物が用意されていないのが不思議です。 何か知っている方、回答お願いします。

noname#117956
noname#117956

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

クリックでブラウザを開くのなら ShellExecute(hWnd, TEXT("open"), TEXT("http://example.com/"), NULL, NULL, SW_SHOWNORMAL); でやっています。

noname#117956
質問者

お礼

ハイパーリンクっぽいコントロールがクリックされたらコマンドで通知、みたいな事がしてほしいのです。 でも便利な関数ですね! 回答ありがとうございました。

noname#117956
質問者

補足

結局スタティックコントロールでそれらしい物を作ることにしました。 DrawTextのDT_CALCRECTで文字列の幅を得てその幅を元にスタティックコントロールをつくり(SS_NOTIFYでクリック感知)、WM_CTLCOLORSTATICメッセージでreturn (BOOL)GetStockObject( NULL_BRUSH )してスタティックコントロールの背景色を白にして、あとはクリックされたら適当に点線の四角を描画してなんとかしてみます。回答ありがとうございました!

関連するQ&A

  • Win32APIでカレンダー表示

    Win32API(C言語)でWindowsフォームアプリケーションのDateTimePicker のようなコントロールは作成できるのでしょうか? ラジオボタンなどはあるようですが、しらべてもわかりません。 どなたかご教示お願いします。

  • MFCなのかWin32APIなのか

    みなさんはじめまして。グフです。 これからWindows上でC/C++(VisualStudio.NET2003) にて、Windowsアプリケーション開発の勉強を始め ようとしています。 いろんなサイトや書籍を見ている中で、Windowsアプリ の開発方法としてMFCをつかうやり方と、Win32APIで 開発する方法の2つがあることがわかりました。 これからWindowsの勉強を行うにはどちらの方法で開発 するのが望ましいのでしょうか? ケース by ケースだとは思いますが、何かアドバイス いただければと思いまして、投稿させていただきました。 やはり基礎からおさえるのであれば、Win32APIの方が よろしいのでしょうか? 今後のWinFX環境を考えると、Win32APIでの知識が無駄 になってしまうということはないのでしょうか?

  • win32api ゲストに実行されるとファイルにアクセスできない

    win32api ゲストに実行されるとファイルにアクセスできない 現在win32apiでアプリケーションを開発しています。 そのアプリケーションを管理者に実行された場合はいいのですが、ゲストに実行されるとprogram file内にあるファイルにアクセスできなくなってしまします。 そのファイルのアクセス権をゆるくもできますが、できればそのファイルを非管理者のユーザーにいじってほしくないのです。 プログラムからはファイルにアクセスしたいけど、非管理者のユーザーからはそのファイルを保護したい、なんてことは無理でしょうか? 回答よろしくお願いします。

  • Win32 API エディットボックス内文字列の色変更

    Win32 APIについて質問です。 (Microsoft Visual Studio .NET 2002、XP、API) エディットコントロールに表示されている文字列の 色(またはフォント)を変更したいと思っています。 エディットボックスに「0」という数字を入力し その後「更新ボタン」をクリックすると、「0」の 文字色が赤色(または赤太文字)へ変更される という具合です。 Win32 APIを始めて間もない者(Cも始めて間もないです) なので、かなり苦戦しております。 「SendMessage() 」みたいな関数を使用しエディット ボックスのハンドルへメッセージを送ることで 実現させるのかなぁ程度しか理解しておりません。 ご存じの方すいませんがよろしくお願いします。

  • C++ API 全般 APIの概要は

    独学にてプログラミングを勉強しているのですが、いきづまってしまったので質問お願いします。 ※Visual Studio 2008 Express Editionsを使用しています。 まだプログラミングに関しての勉強を始めて1ヶ月程度で、最初はVB.NETから始めて、最近C++に乗り換えました。 趣味の範囲でのゲームを作ろうと思っていて、C++とDirectXでの開発を予定しています。(しかし、最終的にはゲームに限らずプログラミングの技術と知識を習得することを目標にしています。)(DirectXに関してはまだ手をつけていません。) まったく1からのスタートで、現在win32コンソールアプリケーションにてコードの勉強をしているところです。 勉強に使っている参考文献は ・VisualC++.NET逆引き大全500の極意 ・ゲームプログラマになる前に覚えて起きたい技術(これを買うには早すぎたようです…。第一章も半分くらいしか理解できません…。) サイトは ・主に「0からのゲームプログラミング」というサイトです。 http://www.plustarnet.com/aspil/Programming/ 本題の質問ですが、APIというものがいまいち理解できません。 (1)上記のような目的で使用するAPIは、標準 Windows APIというものでいいのでしょうか? (2)win32コンソールアプリケーションでは実行できるのに、win32プロジェクトでは実行できないのはなぜでしょうか? #include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL , TEXT("Hello Wold!") , TEXT("メッセージボックス") , MB_OK); return 0; } (3)http://www.plustarnet.com/aspil/Programming/CConsole.htm このURLのコンソールAPIというのは、一般的に使われているものでしょうか?それともこのサイトのオリジナルのものでしょうか?win32コンソールアプリケーションでAPIを使うには、このURLのCConsoleクラスとうものをインクルードしないといけないのでしょうか?#include<windows.h>と宣言することによって気軽に使いたいものを使うことはできないのでしょうか? (4)#include<windows.h> とした場合、作るものが「win32コンソールアプリケーション」だったり「win32プロジェクト」だったり「windowsフォームアプリケーション」だったりで、使用方法などがまったく別になってしまうのでしょうか? (5)そもそも、上記の目的の場合APIを勉強する必要はあるでしょうか? (6)勉強をしたほうが後々に役立つ場合、どのAPIを勉強するのがいいのでしょうか?(APIといっても様々なものがあるんだなと思い質問しました。もし勘違いでAPIというものは一つしかないとしたらすみません。) なぜAPIに関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。 初心者すぎて質問が的外れかもしれませんがよろしくお願いします。

  • Win32APIでシリアル通信をするには?

    Win32APIとVB.NETを使ってシリアル通信をするプログラミングを考えています。概要はGPS端末からのデータをVBで受信して表示できるようなプログラムを目指していますが、APIの使い方が分からないので詳しく教えていただける方がいましたら、サンプルソースまたは参考Webサイトの教示をお願いします。 VB6.0のクラス(MSComm)を追加する方法ではなく、APIを使う方向で回答お願いします。

  • スクリーンからはみ出ないポップアップ(win32api)

    win32apiでアプリケーションを作っています。 右クリックしたときに表示されるポップアップメニューがスクリーンからはみ出ないように、右クリックされた時にポップアップがはみ出るようならポップアップの位置を調整する、ということをしたいです。 その為には表示されるポップアップのサイズが分からないといけないのですが、ポップアップのサイズを得る方法はありますか?大体でやってしまってもあまり問題はないかもしれませんが。 回答よろしくお願いします。

  • メニューバーのショートカットキー(Win32API)

    リソーススクリプトとWin32APIでメニューバーの付いているウィンドウズアプリケーションを作りました。 メニュー内のポップアップはAlt+キーで開けるように"ポップアップの文字列(&H)"としておいたのですが、実際にショートカットで開こうとすると、Alt押しっぱなし+キーでは開けず、Altを押してメニューバーを選択状態にした後にキーで選択する、といった風にしか開けませんでした。 しかし多くのアプリケーションではAlt押しっぱなし+キーでもポップアップが開けます。そうする為にはWM_SYSKEYDOWNを処理してポップアップを開くようにする以外に方法はないでしょうか? 回答よろしくお願いします。

  • Windows APIのGetOpenFileNameで呼び出せるダイアログを改造できないでしょうか?

    添付という形にすると勝手に再変換されて画像がかなり見づらくなってしまうようなので 添付ではなく別途アップへのリンクとさせてください。 今のところVC++2008EEを使ってWindows XPでアプリケーションを開発しています。 よほどメモリの断片化が進むような長時間使用しなければ .NET FrameWorkを完全に使用せず全部ネイティブで組んだほうが、実行時については 様々な面でパフォーマンスが良い場合が多いようなので できればマネージコード0でアプリケーションを完成させたいのですが Windows APIと.NET Frameworkにおいて、様々な場面で「デフォルトのデザインが違う」ようです。 簡単なものなら自作したりコモンコントロールにSendMessageやプロシージャをフックしたりでいいと思ったのですが オープン(セーブ)ファイルダイアログは、通常商用ソフトとかだと1から自作する事があるようなものなのでしょうか? http://www.geocities.jp/shank_long7_02/FileDialog/a.html こちらの画像の一番上がWindowsAPIのGetOpenFileNameで呼び出したダイアログで 真ん中がマネージなSystem::Windows::Formsの OpenFileDialogの場合で 一番下はPhotoshop CS3の別名保存用ダイアログです。 見たところこれは上がSaveFileDialogと一致してて、その下がカスタマイズされてるような感じですね。 現状のWindowsAPIを上記SendMessageやプロシージャのフックなどでちょこちょこっといじって.NET的なデザインにしたり、Photoshopのやつみたいにサイズを変えてその下に自分で好きな物を付け加えたりといったことは可能なのでしょうか? それとも、そういったことをやろうとした場合は1から作るか、混在させるかしかないのでしょうか?

  • DirectXやWin32API (2Dゲーム作りたいです)

    こんにちは,私は2D(最終的には3D(メインは2D))のゲームを C++,DirectX を利用して作りたいと思っています.  今のところ,プログラミングはC,C++は入門+α, ゲーム関係は『ゲームプログラマになる前に覚えておきたい技術』という本の2D分野を読み実習しました.このゲームの本はDirectXやWin32APIなどを利用せずに,なにやらライブラリなどを用意していてそれを利用する形でした. -- 質問 --  DirectX や Win32API を全然わからないという このくらいの知識の人が本格的に2Dゲームをだんだんと作って行きたいのですが,このそれぞれに対してなにかよい参考書はないでしょうか,またその理由などもいただきたいです. --気になること-- 以下あいまいな知識の質問です. ・最近(DirectX7以降かな)はDirectXは2D描写と3D描写の機能が合体したと聞きました,DirectXの参考書は3Dのばかりで3Dも学べていいのですが,2Dゲームが作れるDirectXの内容も詳しく含んだ参考書が欲しいです. ・Win32APIはゲーム製作にどう影響してくるんですか?まだよくわかっていません.ゲームウィンドウなどを表示するのは必用そうですが,, サウンドやグラフィックを読み込むのに必須なのだろうか, でもそれはDirectXでもできませんか?関係がよくわかりません. --まとめ-- できれば 気になること の回答など簡単にしていただきたいです.  長文ここまで読んでいただきありがとうございました. よろしくお願いします.