SendDlgItemMessage( )的问题。

jamos 2001-02-21 11:31:00
char* lpGreet;
SendDlgItemMessage( hWnd, IDC_GREET, WM_GETTEXT, 10, lpGreet);
最后一个参数是从控件里拷入的Buffer的地址。
提示说:无法把一个char* 转换为 long.那个参数应该根据消息的类型
不同而不同的呀,为什么一定要是long??
如何使其编译成功。
...全文
174 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
verybigbug 2001-02-21
  • 打赏
  • 举报
回复
ERROR!!!!

char lpGreet[100]; // 一定要预先分配空间!!!
SendDlgItemMessage( hWnd, IDC_GREET, WM_GETTEXT, sizeof(lpGreet), (LPARAM)lpGreet);
飞鸽传书的代码 #include #include "tlib.h" #include "resource.h" #include "ipmsg.h" #include "msgstr.h" TSetupDlg::TSetupDlg(Cfg *_cfg, THosts *_hosts, TWin *_parent) : TDlg(SETUP_DIALOG, _parent) { cfg = _cfg; hosts = _hosts; } TSetupDlg::~TSetupDlg() { } BOOL TSetupDlg::EvCreate(LPARAM lParam) { SetDlgIcon(hWnd); SetData(); if (rect.left == CW_USEDEFAULT) { GetWindowRect(&rect); int cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN); int xsize = rect.right - rect.left, ysize = rect.bottom - rect.top; int x = (cx - xsize)/2, y = (cy - ysize)/2; if (x + xsize > cx) x = cx - xsize; if (y + ysize > cy) y = cy - ysize; MoveWindow(x < 0 ? 0 : x, y < 0 ? 0 : y, xsize, ysize, FALSE); } else MoveWindow(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, FALSE); SetForegroundWindow(); return TRUE; } BOOL TSetupDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl) { switch (wID) { case IDOK: case SET_BUTTON: GetData(); // SET_BUTTON 偼慡cfg-write ... for debug cfg->WriteRegistry(wID == IDOK ? (CFG_GENERAL|CFG_BROADCAST) : CFG_ALL); if (wID == IDOK) EndDialog(TRUE); return TRUE; case ADD_BUTTON: { char buf[MAX_PATH], buf2[MAX_PATH]; if (GetDlgItemText(BROADCAST_EDIT, buf, sizeof(buf)) <= 0) return TRUE; if (ResolveAddr(buf) == 0) return MessageBox(CANTRESOLVE_MSGSTR), TRUE; for (int cnt=0; SendDlgItemMessage(BROADCAST_LIST, LB_GETTEXT, cnt, (LPARAM)buf2) != LB_ERR; cnt++) if (_stricmp(buf, buf2) == 0) return TRUE; SendDlgItemMessage(BROADCAST_LIST, LB_ADDSTRING, 0, (LPARAM)buf); SetDlgItemText(BROADCAST_EDIT, ""); } return TRUE; case DEL_BUTTON: { char buf[MAX_PATH]; int index; while ((int)SendDlgItemMessage(BROADCAST_LIST, LB_GETSELCOUNT, 0, 0) > 0) { if (SendDlgItemMessage(BROADCAST_LIST, LB_GETSELITEMS, 1, (LPARAM)&index) != 1) break; SendDlgItemMessage(BROADCAST_LIST, LB_GETTEXT, (WPARAM)index, (LPARAM)buf); SetDlgItemText(BROADCAST_EDIT, buf); if (SendDlgItemMessage(BROADCAST_LIST, LB_DELETESTRING, (WPARAM)index, (LPARAM)buf) == LB_ERR) break; } } return TRUE; case LOG_BUTTON: TLogDlg(cfg, this).Exec(); return TRUE; case PASSWORD_BUTTON: TPasswdChangeDlg(cfg, this).Exec(); return TRUE; case URL_BUTTON: TUrlDlg(cfg, this).Exec(); return TRUE; case IDCANCEL: case IDNO: EndDialog(FALSE); return TRUE; } return FALSE; } void TSetupDlg::SetData(void) { SetDlgItemText(GROUP_COMBO, cfg->GroupNameStr); SetDlgItemText(NICKNAME_EDIT, cfg->NickNameStr); SendDlgItemMessage(OPEN_CHECK, BM_SETCHECK, cfg->OpenCheck, 0); SendDlgItemMessage(NOPOPUP_CHECK, BM_SETCHECK, cfg->NoPopupCheck, 0); SendDlgItemMessage(NOBEEP_CHECK, BM_SETCHECK, cfg->NoBeep, 0); SendDlgItemMessage(QUOTE_CHECK, BM_SETCHECK, cfg->QuoteCheck, 0); SendDlgItemMessage(SECRET_CHECK, BM_SETCHECK, cfg->SecretCheck, 0); for (TBroadcastObj *obj=cfg->broadcastList.Top(); obj; obj=cfg->broadcastList.Next(obj)) SendDlgItemMessage(BROADCAST_LIST, LB_ADDSTRING, 0, (LPARAM)obj->Host()); for (int cnt=0; cnt < hosts->HostCnt(); cnt++) { Host *host = hosts->GetHost(cnt); if (*host->groupName && SendDlgItemMessage(GROUP_COMBO, CB_FINDSTRING, (WPARAM)-1, (LPARAM)host->groupName) == CB_ERR) SendDlgItemMessage(GROUP_COMBO, CB_ADDSTRING, (WPARAM)0, (LPARAM)host->groupName); } SendDlgItemMessage(DIALUP_CHECK, BM_SETCHECK, cfg->DialUpCheck, 0); }

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧