リッチエディットの自動サイズ変更について – プログラミング – Home

リッチエディットの自動サイズ変更につい...
 
通知
すべてクリア

リッチエディットの自動サイズ変更について


haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

先日も関連のスレッドを立てました。これで解決と喜んでいましたが、また、行き詰まってしま
っています。お世話になります。

左クリックすると、リッチエディタコントロールを作成します。
それと同時に、直前に作成されたリッチエディタコントロールの自動拡張通知メッセージ
EN_RESIZEREQUESTを受け取り、そのコントロールをリサイズしたいと思っています。

1.先ず、イベントマスクENM_RESIZEREQUESTをコンパイラが認識しませんでした。
それで、下記のように定義しました。

2.OnRichSize関数には入るのですが、要求サイズ((CRect) prq->rcが全然変更されていま
せん。

どこが悪いのか、全くわからず、ほとほと困っています。
何卒よろしくお願いいたします。

環境  VC6++ MFC Win98Se

#define ENM_RESIZEREQUEST 0x00040000

ON_NOTIFY_RANGE(EN_REQUESTRESIZE, 0, 9, OnRichSize)
public:
int num = 0;
CRichEditCtrl m_rich[10];

void CMyView::OnRichSize(UINT id, NMHDR *pNotifyStruct, LRESULT *result)
{
REQRESIZE *prq;
CRect rect;

prq = (REQRESIZE *)pNotifyStruct;
rect = (CRect) prq->rc;
m_rich[id].SetWindowPos(&wndTop, rect.left, rect.top, rect.right -
rect.left, rect.bottom - rect.top, SWP_SHOWWINDOW);

}

void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォル
トの処理を呼び出してください

CClientDC dc(this);
CRect rect(0, 0, 0, 0);
long dwEvent;

if(num > 0){
m_rich[num-1].RequestResize();
}
// m_rich[num].Create(ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN |
WS_CHILD | WS_VISIBLE , rect, this,num );
m_rich[num].SetWindowPos(&wndTop, point.x, point.y, 80, 20,
SWP_SHOWWINDOW);
dwEvent = m_rich[num].GetEventMask();
dwEvent |= ENM_RESIZEREQUEST;
m_rich[num].SetEventMask(dwEvent);
num++;

CView::OnLButtonDown(nFlags, point);
}


引用解決済
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

試してなくてすみませんが、

1) 検索してみたところ、こんなログが。どうでしょう。
http://search.acty-net.ne.jp/mfc_search/archive/2000-1/msg02359.html


返信引用
haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

Banさん、早速ありがとうございます。

ENM_RESIZEREQUEST → ENM_REQUESTRESIZE にしたら、認識しました。
オンラインヘルプが間違っているようです。

ただ、以前、自動変更をしません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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