|
Use SetDlgItemText(...) function in the OnInitDialog()
handler of the dialog box.
eg
SetDlgItemText(IDC_E_DATA,string_data);
R.Balachandran
|
|
|
|
|
I need to develop a VC 6.0 dll routine to be called be VB.
The VB program has a hierarchy of form calling sequence.
MainForm -> FormP -> FormQ or
MainForm -> FormX -> FormY
My VC routine in dll will be called in ANY of these five forms. Is there any way for the VC routine dynamically obtain the handle of the MainForm no matter from which form it is called.
Thank you.
|
|
|
|
|
wavewave wrote:
Is there any way for the VC routine dynamically obtain the handle of the MainForm no matter from which form it is called.
In short, no. What you'll need to do is pass it as a parameter.
In your VC routine, try this...
void MyFunc (HWND hWnd, ...);
And call it from a form in VB like this...
MyFunc Me.hWnd, ...
Jeremy Falcon
|
|
|
|
|
Thanks for your information. As there are nested call in forms, I wish to avoid handle passing and wonder if GetWindow command can accomplish my requirement.
|
|
|
|
|
The best (and most reliable) way is to pass its handle. I mean you can say frmWhatever.hWnd throughout the entire VB project because forms have global scope.
In the VC++ DLL using the GetWindow() method will not return the handle for the VB form. You can try using something like FindWindow(), but there's no guarantee you'll get the exact handle you want.
Jeremy Falcon
|
|
|
|
|
How can I change the color of text and background within a SINGLE panel of the Status Bar?
I have use SB_SETBKCOLOR message but it changes the background color of ALL panels of the Status Bar and I cannot change the color of the text.
Thank you.
|
|
|
|
|
The panes are not separate windows. Therefore they cannot be operated on individually, at least not that I know of.
|
|
|
|
|
However some applications such as MS Visual C development can create this effect.
For MS Visual C, when I search a text pattern in the program source and it can found no more, a message with different background and text color is shown in left panel of status bar with the remaining status bar unchanged.
Please advise
|
|
|
|
|
DavidCrow is right. At the heart of it all, it is one window. To achieve this effect it'll have to be owner drawn, and you control all of the painting yourself.
Jeremy Falcon
|
|
|
|
|
This is probubly a bad idea but it does work.
void CTestStatusBar::OnPaint()
{
CStatusBar::OnPaint();
CRect rc;
GetItemRect(2,&rc);
rc.DeflateRect(2,2);
CClientDC CliDC(this);
CBrush brush(RGB(255,0,0));
CBrush* pOldBrush = CliDC.SelectObject(&brush);
COLORREF clr = CliDC.GetPixel(rc.left,rc.top);
CliDC.ExtFloodFill(rc.left,rc.top,clr,FLOODFILLSURFACE);
CliDC.SelectObject(pOldBrush);
}
Trust in the code Luke. Yea right!
|
|
|
|
|
Dear John,
Thanks for your suggestion. My VC dll has no MFC and wonder if there is alternative for WIN32API coding.
|
|
|
|
|
(You did not mension a DLL before.)
A lot of MFC is just wrappers for Win32 API functionality. The example I gave you was just an experiment to see how it could be done. If you wish to do it using a normal WinProc() then you will need to process the WM_PAINT message. My implimentation simply called the the default processor to allow it do its normal painting then requested (sent request messages) some information from the window, so I would be able to fill in (part of) the background [ExtFloodFill() may be to simple a solution].
Note: A Status bar is just a window containing some static controls (rectangles).
I do not know if this helped at all.
Trust in the code Luke. Yea right!
|
|
|
|
|
I have an array of pixels, and each pixel is represented by a 16-bits value. The order is from left to right and top to bottom. How can i draw them out?
Thanks
|
|
|
|
|
Hello every body
i try to put mor than 256 char in the CString viriable but i cannot, any help.
Best Regards
|
|
|
|
|
Can you provide a code snippet of how you are doing this?
|
|
|
|
|
CString query;
query=_T("select distinct globalt.Mkname,globalt.Route,globalt.Time,globalt.SI,globalt.NDV,globalt.ANBLO,Avg(globalt.Traff) AS AvgTraffic,Avg( globalt.CCONG) AS AvgCCONG \n"
"from globalt \n"
"where ((([globalt].[Route]) Like '*SS*' Or ([globalt].[Route]) Like '*I')=False");
Best Regards
|
|
|
|
|
There's only 254 characters there. What's the problem?
|
|
|
|
|
Thank u for ur reply
I know every thing appeares normal in my code, but after this step if watch this variable 'query' it equals:
"select distinct globalt.Mkname,globalt.Route,globalt.Time,globalt.SI,globalt.NDV,globalt.ANBLO,Avg(globalt.Traff) AS AvgTraffic,Avg( globalt.CCONG) AS AvgCCONG
from globalt
where ((([globalt].[Route]) Like '*SS*' Or ([globalt].[Route]) Like '*I')=Fal"
as u see some char doesnot included "se", even if i add more strings to this variable like query+="any thing" then it doesnt appeare.
so this is my problem!!!!
Best Regards
|
|
|
|
|
hi again
yes that is right there is no problem with CString. the problem was in the Watch window which could not show all char in CString.
Best Regards
|
|
|
|
|
The MFC CString will accommodate strings far longer than 256 characters. It is more likely that there is something wrong with the code that is populating the CString. Post the code if you still have problems!
|
|
|
|
|
Use the Format method:
CString s;
s.Format ("A very long string");
Best regards,
Alexandru Savescu
P.S. Interested in art? Visit this!
|
|
|
|
|
the code u posted works just fine...
|
|
|
|
|
Hi, i have a form in a VC# dll. I'm calling it inside a VC++ 6.0 MDI app. when i create an instance of the VC# dll i set the parent window (the form container) it opens... ok... nothing's wrong.. but the form can overlap the toolbar and the status bar... how can i avoid this?
NHM
|
|
|
|
|
Ok i got a problem with my object loading, i have it in text files and it loads em 1 by one ... so they get a number 0 1 2 etc. But i want to be able to do GetObj("name"); insted so i just can add a name for the objects in a file and get em that way ... So i wounder, is there any way to get this lookup about as fast as the one with numbers?... i need speed and there might be ALOT of object switching It also has to have the ability to remove and add into the object list under runtime, thats why a name lookup insted of number would be alot better
Load("Objectlist.txt");
GetObject(1); // This is the problem, if i load more/change the file it will not be in its right place when used in the program.
Load("Objectlist.txt");
GetObject("Wall"); // But as far as i know this is alot slower then using numbers in an vector or something like that
Ohh well, hope you understand what i mean and if anyone knows about the speed please tell me how much difrence it would be
|
|
|
|
|
In theory, yes, given that object names are sorted in the text file.
Kuphryn
|
|
|
|