ノートパッドの起動方法 & エディットボックスでリターン – プログラミング – Home

ノートパッドの起動方法 & エディット...
 
通知
すべてクリア

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


たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

仕事でUNIX-Cから最近VC++にのりかえてきた初心者です。
手持ちの本やマニュアルで調べてみたのですが・・・
GiveUp状態に陥り、投稿しています。

質問は2件

1.今、とあるダイアログ上のボタンをクリックすると
  任意のファイル(固定のファイル名)をノートパッドで開けるようにしたいのですが。
可能でしょうか?不可能でしょうか?
  (FileDialogとかは使わず、ボタンをクリックしたらそのまま開く!ってしたいんです)

2.Tabコントロール上にエディットボックスを配置し文字列を入力し「Enterキー」
を叩くと、そのTabコントロール上のアイテムが全部非表示になってしまうのですが
なぜ?
キーのイベントを拾ってキーの種別を判断すれば出来るのかな?って思い


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

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


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

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

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

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

  
 


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

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

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


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

ありがとうございます。
早速追っかけてみます。
「ん」さんにせっかく、アドバイスしてただいたのに
自分の知識不足で十分理解できず、すみません。

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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