値が割り当てられていないローカルな変数のことです – プログラミング – Home

値が割り当てられていないローカルな変数...
 
通知
すべてクリア

[解決済] 値が割り当てられていないローカルな変数のことです


三宅
 三宅
(@三宅)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

昨日に続き、またまた教えてください。私の Visual C++ の使用方法は非常にエレギュラー
な方法と感じていますが、これしか出来ないので仕方がありません。
それで質問は (View.cpp に実行したい、プログラムをコーデングしています)
SDIアプリケーションのダイアログベースの
View.cpp に
void CView::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) と
void C
View::OnButton1() ハンドラーを追加して、この OnButton1() から
OnDrawItem を呼び出して使用しています。つまい、
void CRadiobtaView::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォル
トの処理を呼び出してください

CFormView::OnDrawItem(nIDCtl, lpDrawItemStruct);
}

void CRadiobtaView::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

int nID = 0;
LPDRAWITEMSTRUCT lpDraw;

CRadiobtaView::OnDrawItem(nID, lpDraw);
}

こうして、ビルドすると、
warning C4700: 値が割り当てられていないローカルな変数 'lpDraw' に対して参照が行われまし
た。の警告が出ます。これを解決する方法を教えてください。
(構造体を理解できない悲しさです)


引用未解決
トピックタグ
しんた
 しんた
(@しんた)
ゲスト
結合: 23年前
投稿: 48
 

グローバルで宣言したらどうですか??


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

LPDRAWITEMSTRUCT lpDraw = 0; // って書く。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

> 私の Visual C++ の使用方法は非常にエレギュラーな方法と感じていますが、
> これしか出来ないので仕方がありません。

危険です。遅かれ早かれ破綻しそう。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 23年前
投稿: 178
 

 有効な値をセットしないと、実行時に問題が出ると思いますが、、、
 何の為にOnDrawItemを呼び出してるのでしょうか?(?_?)


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

> 有効な値をセットしないと、実行時に問題が出ると思いますが、、、

...早速破綻したか? ^^;


返信引用
FrozenAquarium
 FrozenAquarium
(@FrozenAquarium)
ゲスト
結合: 22年前
投稿: 22
 

> LPDRAWITEMSTRUCT lpDraw;

っていうのはDRAWITEMSTRUCT構造体のポインタです。
OnDrawItem()はこの構造体の内容を使って描画するので
有効な値がセットされたDRAWITEMSTRUCT構造体の実体がないと
落ちますよ。


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

直接 OnDrawItem を呼ばずに、
InvalidateRect や RedrawWindow を使ってコントロールを再描画すればいいのでは?


返信引用
三宅
 三宅
(@三宅)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

NEG(ねぐ)さん、FrozenAquariumさんに他の方々どうもありがとうございます。
構造体の初期化がほんの少しわかりました。とりあえずエラーなしで実行できました。
何の為にOnDrawItemを呼び出してるのでしょうとのご意見ももつともと思います。
それで、OnDrawItemを使用しない方法も考えることも出来ました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました