2012年08月18日

Windows 8 Enterprise Edition のライセンス認証について

http://engineermemo.wordpress.com/2012/08/16/windows-8-enterprise-edition-%E3%81%AE%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E8%AA%8D%E8%A8%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

覚書..


posted by tennoji at 15:51| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

2011年05月05日

ListViewを MFC的に実装する

昔から Win32 直で書いていたので、あまりMFCは使わない人なのですが・・
とりあえず覚書的にメモしておきます。

1.クラスの追加

メニューの「プロジェクト」−「クラスの追加」を選択すると
指定クラスをベースに持つクラスのソースコードを作成する画面が開きます。

そこで、ベースクラスに CListCtrl を選択して
自分で名前をつけます。
例えば、CDeviceListCtrl のように入力すると

DeviceListCtrl.h /.cpp の基本的な部分が記述されたソースコードが生成されます。

2.基本的な実装として

BOOL Initialize();
カラム設定、スタイル設定など
BOOL SetData(LPARAM lParam);
表示項目のデータポインタを直接渡す
BOOL NotifyDisp(NMLVDISPINFO *pDisp);
表示要求の応答関数を実装、
通知データにより表示テキストやアイコンを設定する

の3関数を追加すれば、とりあえずは動作します。

3.表示通知の実装としては

実装したダイアログのクラスビューのプロパティ画面から
該当のListView(IDC_LIST1)を選択して、LVN_GETDISPINFO を選択する

OnLvnGetdispinfoList1() のエントリが作成されるので
そこへ上記 NotifyDisp()を実装してできあがり。

※間違えて HDN_xxxx を追加しないように(^^;
 こちらは、HeaderControl 用の通知です。

4.クラス変数のおきかえ

忘れていました。
ダイアログ上でListViewを選択して、クラス変数を追加するを行なうと

CListCtrl m_listCtrl;

のように変数が追加されるので、これを1で作成したクラスに置き換えます。
posted by tennoji at 14:09| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

2011年04月23日

「▲サポートされていない操作を実行しようとしました。」

MFCアプリの開発をしてて

不要なコントロールをダイアログから削除して
対象のダイアログを表示させようとすると

無題.PNG

こんな画面が表示される。

あれれ、なんか変なことした??

とソースを眺めて考える・・・
ああ、削除したコントロールの
コントロール変数が残ったまだからか(^^;

もう少しメッセージを考えてほしかったなぁ・・
コントロール変数をあわせて削除したら
問題なく表示されるようになりました。
posted by tennoji at 13:39| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

2011年03月23日

VisualStudio 2008でウィザード作成する(Helpボタンを消す)

CPropertySheetのコンストラクタで

m_psh.dwFlags &= ~(PSH_HASHELP);

全てのページのCPropertyPage のコンストラクタで

m_psp.dwFlags &= ~(PSP_HASHELP);

を行うと、ヘルプボタンが表示されなくなります。
posted by tennoji at 15:02| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

VisualStudio 2008でウィザード作成する(ヘッダー有り無し)

Microsoft から提供されているサンプル
Wizard97 のソースを見ればすぐに分かることですが・・

先頭のページや、完了ページなどのようにページヘッダを表示したくない場合

各ページのコンストラクタで、以下のようにフラグをONします。

m_psp.dwFlags |= PSP_HIDEHEADER;
posted by tennoji at 13:54| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

VisualStudio 2008でウィザード作成する(オーバーライド)

昨日に引き続いて、基本的なメンバー関数のオーバーライド方法を

昨日の例で IDD_DIALOG1 へ追加したクラスへの追加とします。

1.クラスビューを表示する

2.CWizardPage01を選択して「プロパティ」を表示させる

3.「オーバーライド」ボタンを押す

  プロパティ部分に表示されるツールバーにある緑色ひし形のボタンを押します。

ここまでの操作で、

OnInitDialog()
OnSetActive()
OnKillActive()
OnWizardNext()

等の普段良く利用する関数が表示されるので
右側のコンボボックスからメンバ関数を選択することで
自動的に関数がソースコードに追加されます。

※その他の通知メッセージ(WM_xxx )の場合は
 同様にダイアログを選択して表示されるプロパティの上部にある
 ツールバーから「メッセージ」ボタンを押して同様にメンバ関数が追加できます。

posted by tennoji at 12:13| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

2011年03月22日

VisualStudio 2008でウィザード作成する

簡単に基本的な内容を...


1.ダイアログリソースを追加する

  IDD_DIALOG1
  IDD_DIALOG2
  IDD_DIALOG3

を追加する

2.ダイアログ IDD_DIALOG1 を選択して

 「クラスの追加」を選択する
 基本クラスを CPropertyPage に変更する

 クラス名に CWizardPage01 と入力すると
 .h/.cpp にCを除いた名前が自動的に入る

 ※同様に 02,03 を作成する
デフォルト選択が CDHtmlDialog なので
  CPropertyPage に変更するのを忘れないように


3.MFCクラスの追加から

 基本クラス CPropertySheet を選択して
 CWizardSheet の名前でクラスを作成する
 ※同時に WizardSheet.cpp/.h が生成される。


4.ヘッダの追加

  WizardSheet.h へ

#include "WizardPage01.h"
#include "WizardPage02.h"
#include "WizardPage03.h"

を追加する

  CWizardSheet に、次のメンバを追加

CWizardPage01 m_wizPage1;
CWizardPage02 m_wizPage2;
CWizardPage03 m_wizPage3;

5.ページの追加

  CWizardSheet.cpp のコンストラクタへ

AddPage(m_wizPage1);
AddPage(m_wizPage2);
AddPage(m_wizPage3);

m_psh.dwFlags |= PSH_WIZARD97;

  を追加


あとは、
各ページのスタイルなどを揃えるだけです

先頭ページの[戻る]ボタンのグレーアウト
最終ページの[完了]ボタンの有効化など
posted by tennoji at 13:12| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする

2008年12月19日

VisualStudio2005 で OnInitDialogを追加する

VC6ではClassWizardがあり簡単に追加できたのが
VS2005になって、なーんか手順が複雑になっている。

手順は
1.リソースエディタで、ダイアログを追加
2.そのダイアログのクラスを作成
3.クラスビューで、そのクラスを選択してプロパティを開く
4.プロパティウインドウに[オーバーライド]という菱形の
 ボタンがあるので、それをクリック
5.オーバーライド可能な関数一覧が表示されるので
そこで OnInitDialog() を選択して追加する
posted by tennoji at 11:48| Comment(0) | MFC | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。