C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: HTMLで記述されている画面


(過去ログ 120 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■70440 / inTopicNo.1)  HTMLで記述されている画面
  
□投稿者/ yomi (1回)-(2014/03/26(Wed) 11:12:35)

分類:[VB.NET/VB2005 以降] 

お世話になります。

環境:Windows 7、Visual Studio 2010、C++

先日十数年ぶりに誰かが作成したC++のアプリケーションをいじることがありました。
そのアプリケーションは画面のボタンやテキストボックスなどをHTMLで記述していました。

変更点はC++部分だったのでHTMLの知識がまるで無い私でも修正は完了したのですが、
頭の中がVisual Studio 6.0で止まっている私にはこういうやりかたが出来るんだと衝撃的でした。
自分が知らないだけでVS6.0から出来たのかはわかりませんが...。


文章ではわかりにくいと思いますがこのようなアプリケーション(HTMLで作成されたダイアログ、本体はCPP)を作れるようになりたいです。

この本がいいよってのは答えにくいかもしれませんので、こんな文字が題名に書かれている書籍又は、
こんなキーワードで検索するといいことあるかもよというのがありましたら教えてください。

.NET初心者用の書籍は何冊か購入していますが昔ながら(ダイアログベース?)のやりかたがほとんで
自分なりにプロジェクトをいろいろ変更してやってみたのですが狙った物が出来ていないのが現状です。

ブラウザにボタン、コンボボックス等を配置し、ボタン押下時に選択されたのを取得し...というくらいはHTMLで記述できるようになってます。

以上、よろしくお願いいたします。

引用返信 編集キー/
■70442 / inTopicNo.2)  Re[1]: HTMLで記述されている画面
□投稿者/ とっちゃん (212回)-(2014/03/26(Wed) 12:00:49)
とっちゃん さんの Web サイト
No70440 (yomi さん) に返信
> 変更点はC++部分だったのでHTMLの知識がまるで無い私でも修正は完了したのですが、
> 頭の中がVisual Studio 6.0で止まっている私にはこういうやりかたが出来るんだと衝撃的でした。
> 自分が知らないだけでVS6.0から出来たのかはわかりませんが...。
>
CDHtmlDialog クラスを使ったものだと思います。
記憶があっていれば、VS6.0の頃にはあった気がしますが、製品があまりにも古すぎて覚えてません。

>
> 文章ではわかりにくいと思いますがこのようなアプリケーション(HTMLで作成されたダイアログ、本体はCPP)を作れるようになりたいです。
>
> この本がいいよってのは答えにくいかもしれませんので、こんな文字が題名に書かれている書籍又は、
> こんなキーワードで検索するといいことあるかもよというのがありましたら教えてください。
>
多分書籍らしい書籍はないと思います。MSDNライブラリ(リファレンスのほう)などを見ながら自分で細かなことを覚えていくしかないかと。
(実際私もそうやって使えるようになりましたし)。

HTML特有の部分としては、ロードが非同期なので、OnInitDialogの時点でコントロールがあるという保証がないとかそういうところですかね。

ただ、この辺りはデザイン部分を全部HTML側に背負ってしまえば(C++側からデザインを制御する部分を完全排除する)、影響が出るというところは
ないと思います。


> ブラウザにボタン、コンボボックス等を配置し、ボタン押下時に選択されたのを取得し...というくらいはHTMLで記述できるようになってます。
>

基本的には、MFCでダイアログ(CDialog)のボタンハンドラなどをかけるなら基本的に行うことに大きな違いはありません。
ダイアログを作成するときに、CDialog(Exを含む)ではなく、CDHtmlDialog を選ぶということ。
コントロールは、HTML上に配置すること。デザインもHTMLの流儀に合わせる必要があること。

というあたりだと思います。

引用返信 編集キー/
■70443 / inTopicNo.3)  Re[1]: HTMLで記述されている画面
□投稿者/ 774RR (140回)-(2014/03/26(Wed) 12:01:15)
それは HTML Dialog って奴ぢゃないかな。MFC のクラス名でいうと CDHtmlDialog だ。
Visual C++ 6.0 にはなかったはずだ。今俺の手元にある Visual Studio 2005 では使える。

Visual Studio 2005, 2010 が手元にあるなら
新規プロジェクト→ MFC アプリ→ ダイアログベース + HTML ダイアログを使用する
で native C++ MFC の HTML Dialog ベースのプロジェクトを開始できるよ。

でも、いまさら Visual C++ の MFC で UI 作る練習するの?なんだか無駄っぽい気が・・・
個人的には C# で UI 作るほうが断然簡単だと思う (部品も多いし Web 上の解説も多いし)
C++ 大好き C# は触りたくない、というなら話は別だが。
引用返信 編集キー/
■70444 / inTopicNo.4)  Re[2]: HTMLで記述されている画面
□投稿者/ yomi (2回)-(2014/03/26(Wed) 15:55:14)
とっちゃん さん、774RRさん

ありがとうございます。

分類間違えました。VBではないですね。すいません。

> CDHtmlDialog クラスを使ったものだと思います。
> それは HTML Dialog って奴ぢゃないかな。MFC のクラス名でいうと CDHtmlDialog だ。

まさかまさかのクラスだったとは...。


> 多分書籍らしい書籍はないと思います。MSDNライブラリ(リファレンスのほう)などを見ながら自分で細かなことを覚えていくしかないかと。
> (実際私もそうやって使えるようになりましたし)。

クラスが存在するのであれば今まで通りリファレンスを見ながらやっていきます。


> 基本的には、MFCでダイアログ(CDialog)のボタンハンドラなどをかけるなら基本的に行うことに大きな違いはありません。
> ダイアログを作成するときに、CDialog(Exを含む)ではなく、CDHtmlDialog を選ぶということ。
> コントロールは、HTML上に配置すること。デザインもHTMLの流儀に合わせる必要があること。

> Visual Studio 2005, 2010 が手元にあるなら
> 新規プロジェクト→ MFC アプリ→ ダイアログベース + HTML ダイアログを使用する
> で native C++ MFC の HTML Dialog ベースのプロジェクトを開始できるよ。

で、早速ですが上記をやってみました。
プロジェクト作成後.htmファイルがあり適当にいじりました。
たしかにボタン等も作成できて数値の受け渡しも出来、
プロジェクト作成時に生成されるhtmを読み込まずに適当に作成したhtmlファイルを読み込むようにし、それも動作しました。


が、すいません一番大事な前提条件を記述することを忘れてました。
先日いじったアプリケーションはビルドをしないのにもかかわらずhtmlをいじることでレイアウトの変更、項目の追加等が出来ました。
出先で開発環境(Visual Studio ***)がなくても簡単な事は対応できるようにしたかったのです。


以上、よろしくお願いいたします。
引用返信 編集キー/
■70445 / inTopicNo.5)  Re[3]: HTMLで記述されている画面
□投稿者/ とっちゃん (213回)-(2014/03/26(Wed) 16:08:11)
とっちゃん さんの Web サイト
No70444 (yomi さん) に返信
> で、早速ですが上記をやってみました。
> プロジェクト作成後.htmファイルがあり適当にいじりました。
> たしかにボタン等も作成できて数値の受け渡しも出来、
> プロジェクト作成時に生成されるhtmを読み込まずに適当に作成したhtmlファイルを読み込むようにし、それも動作しました。
>
>
> が、すいません一番大事な前提条件を記述することを忘れてました。
> 先日いじったアプリケーションはビルドをしないのにもかかわらずhtmlをいじることでレイアウトの変更、項目の追加等が出来ました。
> 出先で開発環境(Visual Studio ***)がなくても簡単な事は対応できるようにしたかったのです。
>
>
できますよ。

デフォルトで作成されるのは、埋め込みリソース形式(.rc内にあらかじめHTMLを用意したもの)ですが、
Navigate() メソッドで、外部ファイル(http://....hogehoge.htmlなど)を指定すればそれを利用するようにできます。

もちろん、ローカルファイルも利用可能です。先日いじったものがそうなっているということなら、
Navigate で検索すれば多分そのあたりの動作を見ることができると思います。

引用返信 編集キー/
■70447 / inTopicNo.6)  Re[4]: HTMLで記述されている画面
□投稿者/ yomi (3回)-(2014/03/26(Wed) 18:19:13)
とっちゃんさん

> デフォルトで作成されるのは、埋め込みリソース形式(.rc内にあらかじめHTMLを用意したもの)ですが、
> Navigate() メソッドで、外部ファイル(http://....hogehoge.htmlなど)を指定すればそれを利用するようにできます。

> もちろん、ローカルファイルも利用可能です。先日いじったものがそうなっているということなら、
> Navigate で検索すれば多分そのあたりの動作を見ることができると思います。

おっしゃる通りです。ありました。

OnInitDialogに以下(まだ直パスですが..)を記述したところ狙った動きになりました。
Navigate(_T("file://C:\\xx\\asd.html"));

ありがとうございます。


774RRさん

> でも、いまさら Visual C++ の MFC で UI 作る練習するの?なんだか無駄っぽい気が・・・
> 個人的には C# で UI 作るほうが断然簡単だと思う (部品も多いし Web 上の解説も多いし)
> C++ 大好き C# は触りたくない、というなら話は別だが。

言い訳ではありませんが
10年以上前に主に書いていたコードはCで組込みです。
たまに動作確認のためにWin(VC++,VB,Cで気分だったり、
そのとき開いていたアプリケーションによって変わる。←VB、VCは昔別アプリでしたよね?)のアプリを作るくらい。

それに以前HTMLとperlだったか?CGIだったか?で何かを作って望んだ動きになったが、
何で動いたのか未だにわからないまま、ネットワークアレルギー?HTMLアレルギー?を残して今に至るのです。

なので依然触っていたのに近い?というのもあり、提供されたコードもVC++、
当時は青かったと思いVC++とセットならアレルギー克服できるかもと感じVC++となったわけです。

しかし、今回の件で久しぶりに各言語(VC、C#、VB)を味見したのですが、
自分の知識は全て化石になっていることを痛烈に実感しました...。


これから各言語(HTML含む)勉強しても実務で利用することは無いかもしれませんが、
これを機に知識をリセットする意味をこめて今後は各言語でいろいろやってみます。
そのときはまたお世話になると思いますのでよろしくお願いいたします。

これからC#でも実現可能かは自分で検証します。

解決します。

以上です。
解決済み
引用返信 編集キー/
■70448 / inTopicNo.7)  Re[5]: HTMLで記述されている画面
□投稿者/ yomi (4回)-(2014/03/26(Wed) 18:26:49)
あとリビルドしなくても画面レイアウト変更できる。すげーやり方知りてー。っていう好奇心ですね。

引用返信 編集キー/
■70459 / inTopicNo.8)  Re[6]: HTMLで記述されている画面
□投稿者/ yomi (5回)-(2014/03/27(Thu) 20:11:34)
解決です。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -