|
in the OnInitDialog
call SetWindowPos or MoveWindow
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
If anybody is familiar with Xltable Format and how to use it please let me know.
I have a section of code that writes data to excel from DDE server.
if(!DdeCmpStringHandles(hsz1, g_hszTopicName) &&
!DdeCmpStringHandles(hsz2, g_hszItemName)) {
string xltableData[100];
// tdtTable record...
xltableData[0] = 0x0010; // tdtTable
xltableData[1] = 4; // 2 short ints following
xltableData[2] = 1; // # rows
xltableData[3] = 1; // # cols
// tdtint record...
xltableData[4] = 0x0002;
xltableData[5] = 16;
xltableData[6] = askrate;
return DdeCreateDataHandle(g_idInst, (UCHAR*)xltableData, 2*7, 0, g_hszItemName, fmt, 0);
in the code above if i define the xltabledata to short the code works fine, but my data is string. so it converts the string data to short. but if i change the data to string it doesn't work.
basically i have string data which i would like to write to excel. please help
|
|
|
|
|
test this:
byte xltableData[100];
xltableData[0] = 0x10;
xltableData[1] = 0;
xltableData[1] = 4;
xltableData[1] = 0;
xltableData[2] = 1;
xltableData[1] = 0;
xltableData[3] = 1;
xltableData[1] = 0;
xltableData[4] = 0x02;
xltableData[1] = 0;
xltableData[5] = 16;
xltableData[1] = 0;
strcpy((char*)(xltableData+13), str);
return DdeCreateDataHandle(g_idInst, (UCHAR*)xltableData, 2*askrate.GetLength()+12, 0, g_hszItemName, fmt, 0);
Zo.Naderi-Iran
|
|
|
|
|
Hi
I am developing a variable window which looks like VC++ editor's variable window. I am able to generate a tree . I am getting the contents every time from memory & displaying it.
So for every "OnStepExecute F11(my debugger command)" , i am deleting the contents of tree & regenerating the tree for variable tree.
So any one knows how to store the previous status of tree, so that every-time the user need not expand the tree to look variable(array/struct) contents.
or do any one have such appilcation which creates variable window.
thanks in advance
Irshad
|
|
|
|
|
I do not see why you need to delete the tree contents. Why not update the specific node(s) data and force a redraw of the node(s).
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fuity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
Imagine that i have a pointer int* my_array and i have the following code:
for (i=0,i < max, i**)
{
result = extern_function(i)
if (result)
{
my_array[i]=1
}
}
How do i allocate memory for my_array? Note that i dont know the size of my_array cos it depends of the result of extern_function.
It seems logical that, if result=1, i should allocate dynamically one space on my pointer, so the dimension of the array will grow in consequence.
I dont know how to do this.
|
|
|
|
|
hm...
it seems that you just want to remember which
call to
extern_function() return true,
so you can save the value of
i to a linked list...
|
|
|
|
|
No, i think my example was too simplified. This one is more accurate.
while (result!=3)
{
result = extern_function();
data= exter_function_data();
my_array[i++]=data;
}
I dont know when the loop will end, so i dont know the size of my_array a priori.
|
|
|
|
|
Several choices:
-realloc
-One of the containers: Linked list, vector, CArray ...
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
i think you should use vector, like this
for( ;; )<br />
{<br />
result = extern_function();<br />
if( result == 3 )<br />
break;<br />
my_array[i++] = extern_function_data();<br />
}
hi
|
|
|
|
|
Almost... std::vector::operator[] does not reallocate; calling it with an out-of-range index results in undefined behavior (std::vector::at(...) will throw an exception).
The OP should be using push_back to add to the vector . (Of course, they might want to preallocate some space for performance reasons...) The code then looks something like:
<br />
std::vector< int > my_array;
<br />
my_array.reserve( 32 );
for( ;; )<br />
{<br />
result = extern_function();<br />
if( result == 3 )<br />
break;<br />
my_array.push_back( extern_function_data() );<br />
}
Peace!
-=- James
Tip for SUV winter driving survival: "Professional Driver on Closed Course" does not mean "your Dumb Ass on a Public Road"! Articles -- Products: Delete FXP Files & Check Favorites
|
|
|
|
|
sure, i make a wrong.
if it's map it's right.
hi
|
|
|
|
|
I am writing a DDE server in VC++ to write data to Excel. I had seen some where the use of XlTable format. but that is not working well for me. Is there a better format than that i can use.
|
|
|
|
|
I have posted a couple of questions already on this subject and am understanding it now all the better. I have my code working but wonder what others would think of what I have.
It is the library object which contains a list of subjects. Each subject contains a list of books. I serialize the library to disk which works well. For an example when I store my library object I also write the number of subjects it contains. When I restore the library I then dynamically allocate new subjects the number of which I read from the data file. I can then add new subjects with a member function like this -
CLibrary::addSubject(const CSubject *subject)
{
CSubject *pSubject = new CSubject();
pSubject->name = subject->name;
}
I still wish to know though that what does CObject give me that I do not have to write myself anyway? I know it has other benefits like RTTI but what does it give for serilization? I just seem to have to write lots of code and CObject just is there doing nothing
|
|
|
|
|
CObject is the base class that has the virtual functions you are overriding.
It has the RTTI that the serialition subsystem uses to serialize and deserialze objects properly, especially ones it builds on the fly - meaning it has to create the objects that are serialized that your object contains.
If I don't plan to serialize or RTTI a class, then I uusally don't derive it from CObject myself.
|
|
|
|
|
Hai all,
I am doing a VC project invloving graphics.
While drawing a graphical object(say ellipse) on mousemove,
the whole screen is refreshed.
All the previously drawn objects are redrawn.
Consequently, the application slows down.
I am trying to refresh the particular region of the current object(ellipse) with InvalidateRect().
Please help me in solving this problem with InvalidateRect().
Or is there any other way to solve this problem?
With thanks,
Arun
|
|
|
|
|
|
I'm doing stuff like this in http://www.codeproject.com/miscctrl/diagrameditor.asp[^] where I find the performance quite ok. I'm updating all of the screen, but I do use double buffering. So, this might be a solution for you - create a memory CDC , draw all objects to it, and blit the whole mess to the screen in a single BitBlt .
|
|
|
|
|
OnEraseBkgnd():
return TRUE; // do all drawing in OnDraw()
OnLButtonDown():
pointAnchor = point;
rectCurrent.Set(point.x,point.y,point.x+1,point.y+1);
InvalidateRect(rectCurrent);
OnMouseMove():
rectNew.Set(pointAnchor.x,pointAnchor.y,point.x,poin.y);
rectNew.NormalizeRect();
rectNew.bottom++;
rectNew.right++;
rectCurrent.UnionRect(rectCurrent,rectNew);
InvalidateRect(rectCurrent);
rectCurrent = rectNew;
OnDraw():
Normaly in the above you would have been drawing to a bitmap via a memory DC.
BitBlt(...);
ExcludeClipRect(bitmapRect); // area where you blited the bitmap
CRect rcClip;
pDC->GetClipBox(&rcClip);
pDC->FillSolidRect( // fill in background
rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),
::GetSysColor(COLOR_WINDOW));
With that said check out the article CExBitmap, it was designed to be used in a paint program.
Good luck!
INTP
|
|
|
|
|
I am trying to use named pipe to transfer data between two process. I have called the following code
<br />
HANDLE hPipe; <br />
LPTSTR lpszPipename = "\\\\.\\pipe\\DataTransferPipe"; <br />
<br />
hPipe = CreateNamedPipe( <br />
lpszPipename,
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE |
PIPE_READMODE_MESSAGE |
PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
1024,
1024,
18000,
NULL);
<br />
if (hPipe == INVALID_HANDLE_VALUE) <br />
{<br />
MessageBox("Error creating named pipe", "Named Pipe Error" , MB_OK);<br />
return;<br />
}<br />
<br />
bool bConnected = ConnectNamedPipe(hPipe, NULL) ? TRUE : (GetLastError() == ERROR_PIPE_CONNECTED); <br />
I want the system to be that if no client connect for say 3 sec the call ConnectNamedPipe should return false. Is this possible....how. In the above code it just locks on the ConnectNamedPipe call
|
|
|
|
|
BOOL SetNamedPipeHandleState(
HANDLE hNamedPipe,
LPDWORD lpMode,
LPDWORD lpMaxCollectionCount,
LPDWORD lpCollectDataTimeout
);
|
|
|
|
|
How can I remove non-client area of a window (border & title), which belongs to another process (separate application)? I have only HWND of that window, and cutting its DC using SetLayeredWindowAttributes() with LWA_COLORKEY, to get some specific shape, but all non-client area remains as an ugly frame. So I need to remove it somehow.
Note: the window is created by existing application, and I can’t change its code
|
|
|
|
|
You might want to try hooking the window and handling WM_NCPAINT .
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
1) How to handle opening of a window, which belongs to another process (separate application)? The window has unique title, but not unique class. I need more intelligent way, than just calling FindWindow() from infinite loop
2) How can I monitor and handle closing/terminating of that window, after I found it?
|
|
|
|
|
Hook mechanism.
I don't know properly how to program to detect window open, but I know that is the most efficently way to detect.
Look in codeproject for hook. I think that you will have success ...
regards
Rodrigo Pinho Pereira de Souza
|
|
|
|