Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SendMessage() function

2 views
Skip to first unread message

George Carrey

unread,
Oct 27, 2009, 9:32:07 AM10/27/09
to
Im trying to write to the list box "Win_1" with SendMessage() but im doing
something wrong.

Thanks in advance!

____________________________________

[code]
#include <windows.h>
#include <tchar.h>
#include <string>
#include <iostream>
#include <richedit.h>
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"Gdi32.lib")
using namespace std;

#define IDB_TEXT2 101
#define IDB_TEXT3 102
#define GetText 103

HWND hwnd, Win_1, Win_2, Send;
MSG Msg;
HDC hdc;
PAINTSTRUCT ps;
TCHAR *buf = {0};
int length;
size_t found;
string Text, str;

void GetIt()
{
length = GetWindowTextLength(Win_2);
buf = new TCHAR[length+1];
GetWindowText(GetDlgItem(hwnd,IDB_TEXT3), buf, length+1);
str = buf;
found = str.find("\r\n");
Text = str.substr(0,found);
SendMessage(Win_1, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)Text.c_str());
delete[] buf;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
switch(msg){
case WM_CREATE:
Win_1 = CreateWindowEx(0,"ListBox", 0,
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL |
WS_HSCROLL | LBS_DISABLENOSCROLL,
20, 20, 550, 460, hwnd, (HMENU)IDB_TEXT2, 0, NULL);
Win_2 = CreateWindowEx(0,"Edit","Hello",
WS_VISIBLE | WS_CHILD | WS_HSCROLL | WS_VSCROLL |
ES_AUTOHSCROLL | ES_WANTRETURN | ES_MULTILINE,
20, 500, 550, 180,hwnd,(HMENU) IDB_TEXT3,
((LPCREATESTRUCT)lParam)->hInstance,NULL);
Send = CreateWindowEx(0,"Button","Send",
WS_CHILD | WS_VISIBLE | WS_BORDER,
20, 700, 550, 20,hwnd,(HMENU)GetText,0,NULL);

EnableWindow(Send ,TRUE);
EnableWindow(Win_1 ,TRUE);
EnableWindow(Win_2 ,TRUE);
break;
case WM_PAINT:
GetIt();
break;
case WM_COMMAND:
switch(wParam)
{
case GetText:
InvalidateRect(Win_1,0,FALSE);
//system("start http://www.google.com");
break;
}
case WM_TIMER:
// if (GetAsyncKeyState(VK_F11)) ShowWindow(hwnd,SW_HIDE);
//if (GetAsyncKeyState(VK_F12)) ShowWindow(hwnd,SW_SHOW);
break;

case WM_CLOSE:
DestroyWindow(hwnd);
break;

case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,msg,wParam,lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR
lpCmdLine,int nCmdShow)
{
WNDCLASSEX wc;
wc.hInstance = hInstance;
wc.cbClsExtra = 0;
wc.cbSize = sizeof(WNDCLASSEX);
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) CreateSolidBrush(RGB(100,100,100));
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = "Class";
wc.lpszMenuName = NULL;
wc.style = 0;
wc.hIconSm = NULL;
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

hwnd = CreateWindowEx(WS_EX_LEFT|WS_EX_LTRREADING|WS_EX_WINDOWEDGE,
"Class",
" The_Chatter",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 600, 800,
HWND_DESKTOP, NULL, hInstance, NULL);

if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK); return 0;
}

SetTimer(hwnd,1,125,NULL);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
[/code]


red floyd

unread,
Oct 27, 2009, 12:49:35 PM10/27/09
to
On Oct 27, 6:32 am, "George Carrey" <montpellie...@gmail.com> wrote:
> Im trying to write to the list box "Win_1" with SendMessage() but im doing
> something wrong.
>

Let's see what's wrong here.

1. You have an error on line 42 of your code. That is, we're not
psychic. Why do you think something is wrong? See FAQ 5.8
http://www.parashift.com/c++-faq-lite/how-to-post.html#faq-5.8

2. You have posted to the wrong newsgroup. The C++ language knows
nothing about SendMessage or "list boxes". You have a question
about the Win32 API, not the C++ language. See FAQ 5.9
http://www.parashift.com/c++-faq-lite/how-to-post.html#faq-5.9
or try a newsgroup with "windows" in its name.


George Carrey

unread,
Oct 28, 2009, 4:47:51 AM10/28/09
to
Thank you and sorry!


0 new messages