選択されてないと時、無効

[戻る]
Pi_ter 2001/11/05(月) 21:16:55
始めまして

文字選択されてない時
メニューの
切り取り/コピーを無効にしたい。
あとクリップボードに無いとき貼り付けも無効に・・

エディットボックス内の
ポップアップの表示と同じにしたいです

環境VC++6.0
MDIです

お願いしますーTT

kazuma 2001/11/05(月) 23:31:22
http://www.microsoft.com/japan/developer/library/vccore/_core_how_to_update_user.2d.interface_objects.htm

とりあえずこの辺を読んでみてください。

Pi_ter 2001/11/06(火) 10:33:34
ありがとうございます
無効状態は出来ました。

void CWCBFileView::OnUpdateEditCut(CCmdUI* pCmdUI) 
{
    // TODO: この位置に command update UI ハンドラ用のコードを追加してください
    pCmdUI->Enable(FALSE);
}

あとは切り取り、コピーで選択されたタイミングを取るのと
貼り付けでクリップボードにテキストデータがあるかないか
を探してみます。

選択状態はアイテム一つ一つに対して
付けなければいけないようですね
フォーカスはちょっと意味合い違いますし、うーむ

でも、そこら辺は探せばありそうです。

pi_ter 2001/11/08(木) 17:01:36
[[解決]]
こんなんなりました。
とりあえず解決

CEditは文字列選択のタイミングが取れるのですが
CComboBoxの文字列選択のタイミングは未だわからず・・;

【切り取り】

void SampleView::OnUpdateEditCut(CCmdUI* pCmdUI) 
{
    // TODO: この位置に command update UI ハンドラ用のコードを追加してください
    m_Edit.GetSel(nStartChar,nEndChar);

    if(nEndChar - nStartChar){
        pCmdUI->Enable(TRUE);
    }
}

【貼り付け】

void SampleView::OnUpdateEditPaste(CCmdUI* pCmdUI) 
{
    // TODO: この位置に command update UI ハンドラ用のコードを追加してください

    pCmdUI->Enable(FALSE);

    if(::IsClipboardFormatAvailable(CF_TEXT)!=FALSE){
        pCmdUI->Enable(TRUE);
    }
}

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