ノートパッドの起動方法 & エディットボックスでリターン

[戻る]
たか 2002/01/25(金) 11:20:21
仕事でUNIX-Cから最近VC++にのりかえてきた初心者です。
手持ちの本やマニュアルで調べてみたのですが・・・
GiveUp状態に陥り、投稿しています。

質問は2件

1.今、とあるダイアログ上のボタンをクリックすると
  任意のファイル(固定のファイル名)をノートパッドで開けるようにしたいのですが。
    可能でしょうか?不可能でしょうか?
  (FileDialogとかは使わず、ボタンをクリックしたらそのまま開く!ってしたいんです)
    
2.Tabコントロール上にエディットボックスを配置し文字列を入力し「Enterキー」
    を叩くと、そのTabコントロール上のアイテムが全部非表示になってしまうのですが
    なぜ?
    キーのイベントを拾ってキーの種別を判断すれば出来るのかな?って思い

2002/01/25(金) 11:39:48
1.ShellExecute のヘルプを見ることをおすすめします。
2.該当するのは SetWindowPos あたりでしょうか。
  今一事象がつかめないのではずれているかもしれませんが。
  「非表示」というよりも「Tabコントロールの裏にエディットボックスが
  隠れている」って気がします。

たか 2002/01/25(金) 12:02:38
たかです
アドバイスありがとうございます。
(投稿も初心者で、書いてる途中で間違って送信しちゃいました、
 しかも、複数。(^^;))

1. 早速調べてみます。
  (調べるキーワードが分かって、光が見えてきました)

2.  なるほど、とすると再描画するようにすれば・・・。
  現在、問題のエディットボックスに
    ClassWizerdから「EN_UPDATEメッセージ」を設定して
  対応する関数内で「UpdateData」を呼ぶようにしているのですが
  これではダメなのでしょうか?
   (ここまでは自力でたどりついたのですが・・・)  
 
     void Settings::OnUpdateSettings() 
     {
    UpdateData( TRUE ) ;
     }
  
  デバッガで「Enterキー」を叩いても、この関数に入らないのですが・・・

  
  

sugar 2002/01/25(金) 12:31:17
UpdateData()は、エディットボックス内のデータを表示しなおすことになります。
「ん」さんは、エディットボックスとTabコントロールとの重なり方を言っているので、
もしそうならSetWindowPos()で手前に持ってくる必要があるのではないですか、
ということです。

このTabコントロールがダイアログ上にあるのなら、
Enterが押された段階で、ダイアログボックス上のデフォルトボタンを押した事になると思うの
ですが、
どこかのボタンのクリック処理が動いてませんか?
そこで何をしているかを追いかけると、何かわかるかもしれません。

たか 2002/01/25(金) 13:09:56
[[解決]]
ありがとうございます。
早速追っかけてみます。
「ん」さんにせっかく、アドバイスしてただいたのに
自分の知識不足で十分理解できず、すみません。

お二人に、いただいたアドバイスをヒントに
また、チャレンジしてみます。

古いスレッドには追加発言できません。