2008年8月14日木曜日

XP SP3を適用後、Windows Updateが正常に完了しない

Windows XP SP3 をインストールした後、Windows Update、Microsoft Update、または自動更新で更新プログラムが正常にインストールされないを参考に以下を試す。

ドス窓を開いて、

> net stop wuauserv
> regsvr32.exe %windir%\system32\wups2.dll
> net start wuauserv

なにやら、DLLの差し替えをしているみたい。
これで、再度Windows Updateを試みる。
しかし、こんな作業はGUIしか触らない人には無理だな。

ラベル:

2008年8月13日水曜日

【MFC】 プロパティシートとウィザードの作り方

プロパティシートとは例えば、ウィンドウズの「画面のプロパティ」ことだ。
タブごとに壁紙、スクリーンセーバー、解像度などの各種設定ができて画面の設定を変更・保存することができる。
また、ウィザードとはインストーラのようなもの。
画面ごとに質問に答えていって、設定を決める。

MFCではプロパティシートのモードを変えるだけで、プロパティシートがウィザードになる。
上の説明でプロパティシートとウィザードの違いはタブごとか画面ごとかを考えればごく自然だ。
ただし、ダイアログをデザインする際にウィザードはウィザードらしくするなどは言うまでもない。

それではMFCでプロパティシートの作り方から。

Visual C++で適当なMFCプロジェクトを作る。
リソースビューDialogを右クリックして、Dialogを挿入を選択する。
デフォルトのボタン類は削除する。

ダイアログを右クリックしてクラスの追加を選ぶ。
クラス名:CPage1
基本クラス:CPropertyPage

次にプロパティを変更する。
Style:子
System Menu:False
Caption:my property sheet

同様にCPage2を追加する。

次にプロパティシートクラスを作成する。
プロジェクトを右クリックしてクラスの追加を選択する。
MFCクラスを選んで、次に進む。
クラス名:CSheet
基本クラス:CPropertySheet

Sheet.hを開いてソースを編集する。


#include "Page1.h"
#include "Page2.h"
...
public:
CPage1 m_page1;
CPage2 m_page2;



Sheet.cppを編集


CSheet::CSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{

AddPage(&m_page1);
AddPage(&m_page2);
AddPage(&m_page3);

}

CSheet::CSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{

AddPage(&m_page1);
AddPage(&m_page2);
AddPage(&m_page3);

}



適用ボタンを無効化するにはCSheetのコンストラクタで

m_psh.dwFlags |= PSH_NOAPPLYNOW;

とします。

逆に有効化するにはCPage1でイベントの追加からメッセージEN_CHANGEを追加します。
プロパティのオーバーライドから、OnApplyにより適用ボタンのイベントを拾うことができる。

たいていの場合はメニューやボタンのイベントでプロパティシートを呼ぶことになるだろう。
好きなイベントハンドラーで以下のようにプロパティシートを作成する。


CSheet sheet(L"タイトルとか", this, 0);
INT_PTR result = sheet.DoModal();
if (result == IDOK) {
...



プロパティシートをウィザードモードに変更するには以下のメソッドを呼ぶだけ。

...
sheet.SetWizardMode();
INT_PTR result = sheet.DoModal();
...


また、ウィザード特有のメソッドがある。
OnSetActiveはページが作られたタイミングで呼ばれる。
ここに「次へ」ボタンなどを追加できる。

...
CPropertySheet* parent = (CPropertySheet*)GetParent();
parent->SetWizardButtons(PSWIZB_NEXT);
...


自分で定義したウィザード共通の変数へアクセスする場合はCSheetを呼ぶ。

...
CSheet *parent = (CSheet*)GetParent();
parent->m_foo = ...
...


PSWIZB_BACK | PSWIZB_NEXTとすると「戻る」と「次へ」ボタンが押せる。
完了ボタンはPSWIZB_FINISH。

「次へ」ボタンのイベントはOnWizardNextで拾える。

ウィザードが完了したかどうかは

...
sheet.SetWizardMode();
INT_PTR result = sheet.DoModal();
if (result == ID_WIZFINISH) {
// 完了処理
} else {
// キャンセルなど
}

ラベル: , , , ,

2008年8月4日月曜日

【相関くんのブログ】 7月の株価同士の相関と株価・為替間の相関に対応

相関くんでは、日経平均225銘柄の間の相関、NASDAQ/S&P/DOWと日経225の相関、米ドルと日経225の相関が調べられる。
7月のデータが計算された。

日経平均同士の相関が強かった銘柄。
強い順 銘柄1 銘柄2 相関係数 詳細
1位 (株)三井住友フィナンシャルグループ (株)三菱UFJフィナンシャル・グループ 0.9600 相関推移
2位 (株)大和証券グループ本社 野村ホールディングス(株) 0.9419 相関推移
3位 三菱重工業(株) (株)大和証券グループ本社 0.9344 相関推移
4位 (株)三井住友フィナンシャルグループ (株)みずほフィナンシャルグループ 0.9255 相関推移
5位 東京エレクトロン(株) (株)アドバンテスト 0.9127 相関推移
6位 DOWAホールディングス(株) 日本精工(株) 0.9106 相関推移
7位 中部電力(株) 関西電力(株) 0.9019 相関推移
8位 みずほ信託銀行(株) 野村ホールディングス(株) 0.8985 相関推移
9位 富士フイルムホールディングス(株) オリンパス(株) 0.8946 相関推移
10位 (株)三菱UFJフィナンシャル・グループ 野村ホールディングス(株) 0.8914 相関推移


7月に米ドルと相関が強い銘柄。
1位 (株)IHI アメリカドル 0.5302 相関推移
2位 横浜ゴム(株) アメリカドル 0.5226 相関推移
3位 三井化学(株) アメリカドル 0.5109 相関推移
4位 (株)資生堂 アメリカドル 0.5047 相関推移
5位 (株)明電舎 アメリカドル 0.5017 相関推移
6位 北越製紙(株) アメリカドル 0.5003 相関推移
7位 (株)ブリヂストン アメリカドル 0.4974 相関推移
8位 (株)三菱ケミカルホールディングス アメリカドル 0.4968 相関推移
9位 東ソー(株) アメリカドル 0.4957 相関推移
10位 (株)損害保険ジャパン アメリカドル 0.4931 相関推移


ダウと相関が強かった銘柄。
強い順 銘柄1 銘柄2 相関係数 詳細
1位 三井化学(株) DOW JONES 0.7274 相関推移
2位 (株)三菱ケミカルホールディングス DOW JONES 0.7063 相関推移
3位 東ソー(株) DOW JONES 0.6176 相関推移
4位 住友化学(株) DOW JONES 0.6000 相関推移
5位 (株)IHI DOW JONES 0.5879 相関推移
6位 武田薬品工業(株) DOW JONES 0.5555 相関推移
7位 清水建設(株) DOW JONES 0.5509 相関推移
8位 (株)ブリヂストン DOW JONES 0.5490 相関推移
9位 (株)明電舎 DOW JONES 0.5392 相関推移
10位 (株)ミレアホールディングス DOW JONES 0.5388 相関推移

ラベル: ,