|
If you have associated a CString variable to your edit control, then try calling UpdateData(TRUE) on your OnDisplayButton handler before doing anything else.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
the edit ID is IDC_EDIT1 in the the dialog:
CString editText;
GetDlgItemText(IDC_EDIT1,editText);
|
|
|
|
|
Hello all,
I am experiencing a problem with one of the dlls in my project. It's a COM dll (written in VC++, compiled under Win2000 as MinDependency) that uses winsock and wininet, and when I try to regsvr32 it under Windows 95, it gives a "LoadLibrary failed (error 485)" message. All other dlls register properly. Windows 98, NT, 2000 have no such problem.
Here's what is specified in its Object/Library modules list: "wininet.lib Ws2_32.lib"
The system with problems has IE5 installed, so I don't think it's wininet that causes problems.
So, does anyone know how to solve it in the best way?
Help is greatly appreciated.
Volodya Orlenko,
orlenko [at] hotmail [dot] com
|
|
|
|
|
ws2_32.lib links against Winsock library version 2.0, which is not shipped with W95 by default (Winsock baseline version for this OS is 1.1), so maybe this is what's causing the problem. Try installing the Windows Socket 2 Update for Windows 95.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanks a lot. I'll experiment with that tonight.
Volodya Orlenko,
orlenko [at] hotmail [dot] com
|
|
|
|
|
Hello everybody!
How can I print multi-rows text with format as a CDC::DrawText() functions?
Best regards,
Eugene Pustovoyt
Sonork ID 100.10002:Yaumen
|
|
|
|
|
Use GDI+ (graphics.DrawString).
|
|
|
|
|
Why not use DT_WORDBREAK style?
From MSDN:
DT_WORDBREAK Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by lpRect. A carriage return–linefeed sequence will also break the line.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
Thank you!
But DrawText with multi-rows not allows the vertical align!
Best regards,
Eugene Pustovoyt
Sonork ID 100.10002:Yaumen
|
|
|
|
|
Nope, if you need to vertical align, you'll have to do it in two steps:
CRect vtCenterInRect(0, 0, 300, 200);
CString vcstrLabel(_T("We want to wrap this text in the rectangle"));
pDC->DrawText(vcstrLabel, vtCenterInRect, DT_CALCRECT | DT_WORDBREAK | DT_TOP);
CRect vtActualRect;
vtActualRect.left = 0;
vtActualRect.right = 300;
vtActualRect.top = (200 - vtCenterInRect.Height()) / 2;
vtActualRect.bottom = vtActualRect.top + vtCenterInRect.Height();
pDC->DrawText(vcstrLabel, vtActualRect, DT_WORDBREAK | DT_TOP);
Hope this helps.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
Well, it's fine work!
Thank you very much.
Best regards,
Eugene Pustovoyt
Sonork ID 100.10002:Yaumen
|
|
|
|
|
where can I find some articles about the "Thread Pool"?
|
|
|
|
|
The ultimate framework for thread programming is Douglas Schmidt's ACE library, which, among an impressive array of features, provides a thread pool.
Anyway, ACE can probably be an overkill if you're planning to do a simple program. Sherwood Hu's A programming model to use a thread pool could be a simpler alternative.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hi guys,
I'm doing a ::PostMessage() to a window via a worker thread. The documentation for ::PostMessage() says that if the post succeeds, then the return value is nonzero. However, sometimes I get a zero result, and then I check the GetLastError() and this returns 0 as well (I'm assuming this means "no error", as the docs say nothing about this). I know the window handle I'm posting to is valid. What is going on?
Thanx
swinefeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
Post some code here, then it's much easier to tell you whats wrong!
Or try ::SendMessage(..) instead
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Not much else to say but what I said in the previous post. I'm posting a custom message to a window that I know exists. Also, SendMessage() just won't do, as the message needs to be sent from a worker thread to the main gui thread.
cheers,
swinefeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
Have you tried:
BOOL PostThreadMessage(
DWORD idThread, // thread identifier
UINT Msg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
and try this to:
DWORD GetWindowThreadProcessId(
HWND hWnd, // [in] handle to window
LPDWORD lpdwProcessId // [out] process identifier
);
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Hmmm interesting . I didn't know about this api function. I'm going to try this.
Is there any easy way of getting the main ui thread? (instead of just retrieving it by the ui thread on startup and using ugly synchronization to get it in the worker thread)
What do I pass as the time? I'm assuming this is the value returned by GetTickCount(). The docs for MSG say nothing about the format of this field.
But shouldn't PostMessage() be thread safe anyways? It works for other messages... Oh btw the exact same code I mentioned in the original post does work sometimes.
Thanks!
swinefeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
swinefeaster wrote:
What do I pass as the time? I'm assuming this is the value returned by GetTickCount(). The docs for MSG say nothing about the format of this field.
Pass where? :/
-------------------------------------------
And if you use the HWND that you created in the main thread you should get the main thread ID if you do lika this:
GetWindowThreadProcessId(hWnd, lpdwProcessId); // hWnd is the HWND that you created in the main thread. lpdwProcessId is the thread ID of the main process
After that do just:
PostThreadMessage(lpdwProcessId, WM_COMMAND, (WPARAM)ID_OK, 0); // Send a WM_COMMAND to the main thread.
I hope this work!!
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Oops I read the documentation wrong. I thought I was supposed to pass a MSG structure in the call to PostThreadMessage().
Anyways, I just tried using that call and I get the exact same result: PostThreadMessage() returns 0 and GetLastError() returns 0 as well.
What the hell is going on?
swinefeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
GetLastError() Return values:
Code Description Name
-----------------------------------------------------------------------
0 The operation completed successfully. ERROR_SUCCESS
-----------------------------------------------------------------------
Well, as you see this is an return value from GetLastError that 0 is ERROR_SUCCESS and it means that there is no error... hm.. strange!
I don't remember, but did your message that you sent do any effect or so?
If not, there must be another error somewhere in the code or something... send me the code to my mail box or here if it's not so much! I'm sure I can give you more help if you do that!
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Just for laughs I'll post the code that did this:
bool posted = ::PostMessage(handle, message, wParam, lParam);
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(!posted)
{
DWORD error = GetLastError();
CWinApp* WinApp = AfxGetApp();
cSubMainApp* App = safe_dynamic_cast<csubmainapp*>(WinApp);
if(!App)
{
// Couldn't cast app.
ASSERT(false);
}
else
{
DWORD mainThreadId = App->GetMainUiThreadId();
posted = PostThreadMessage(mainThreadId, message, wParam,
lParam);
error = GetLastError();
}
}
Note that here I'm trying both api functions.
swinfeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
swinefeaster wrote:
GetMainUiThreadId();
I don't recognize this method?
-----------------------------------------------
Tell me what message you're trying to send!
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Got your mail buddy!
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|