|
anilFirst wrote: MessageLoop ( GetMessage & DispatchMessage ) not needed in some cases. So it means that SendMessage() can call WindowProc directly.
Yes. In case the message is sent using SendMessage() .
anilFirst wrote: For a test case call UpdateWindow() before MessageLoop will invoke WindowProc directly. WindowProc will be called with WM_PAINT message. Then only the control comes to MessageLoop.
I don't understand what you mean. Is this a question?
If you want to see how message handling works, I suggest you use your own user defined message ID. You cannot use WM_PAINT or WM_TIMER for this purpose since those messages are treated differently than other messages.
Try sending with SendMessage() and posting with PostMessage() from the main thread and see how the call stack differs in the two scenarios.
Then try sending the message from another thread and you'll find that the call stack looks the same as if the message was posted from the main thread.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
I did try user defined message using SendMessage() before the message loop, soon after a call to CreateWindow() API. The message was send from main thread only. The windowproc received the User defined messages. This means that the message loop is not needed for SendMessage to deliver messages to WindowProc.
|
|
|
|
|
i have to create a tab with items that change dynamically. i have to use only one dialog for all the tabs. how to do this?. is it possible
Arise Awake Stop Not Till ur Goal is Reached.
|
|
|
|
|
this is a very not advisable way but i am sure that it will work.
you can make different controls on the dialog visible property false and make it true when u need them
|
|
|
|
|
Take a look at this article[^], I think it does what you are looking for.
|
|
|
|
|
//*****************************Main Program ******************************
#include <stdio.h><br />
#include <conio.h><br />
#include <stdlib.h><br />
#include "ReadWrite.h"<br />
#include "Graph.h"<br />
<br />
<br />
void main(int doiso, char *thamso[])<br />
{<br />
<br />
GRAPH G;<br />
int rf=G.ReadData(thamso[1]);<br />
if(!rf)<br />
printf("Khong doc duoc file!\n");<br />
else<br />
{<br />
printf("Doc duoc file!\n");<br />
G.GraphAlgorithm();<br />
int wf=G.WriteData(thamso[2]);<br />
if(wf)<br />
printf("Ghi file thanh cong!");<br />
}<br />
<br />
getch();<br />
}<br />
//******************************Graph.cpp*********************************
#include <stdio.h><br />
#include <conio.h><br />
#include "Graph.h"<br />
<br />
int GRAPH::ReadData(char *FileName)<br />
{<br />
FILE *fp=fopen(FileName,"rt");<br />
if(!fp)<br />
return 0;<br />
fscanf(fp,"%d",&n);<br />
B=new unsigned char *[n];<br />
unsigned char *temp=new unsigned char [n];<br />
for(int d=0; d<n; d++, temp+=d)<br />
B[d]=temp;<br />
for(int i=0; i<n; i++)<br />
for(int j=0; j<n; j++)<br />
fscanf(fp,"%d",&B[i][j]);<br />
fclose(fp);<br />
return 1;<br />
}<br />
<br />
const int GRAPH::WriteData(char *FileName)<br />
{<br />
FILE *fp=fopen(FileName,"wt");<br />
if(!fp)<br />
return 0;<br />
fprintf(fp,"%d",n);<br />
for(int i=0; i<n; i++)<br />
{<br />
fprintf(fp,"\n");<br />
for(int j=0; j<n; j++)<br />
fprintf(fp,"%d\t",B[i][j]);<br />
}<br />
<br />
int nLT=label;<br />
if(nLT==1)<br />
fprintf(fp,"\nDo thi lien thong!");<br />
else<br />
{<br />
fprintf(fp,"\nDo thi khong lien thong");<br />
fprintf(fp,"\nCo %d thanh phan lien thong:",nLT);<br />
for(int m=1; m<=label; m++)<br />
{<br />
fprintf(fp,"\nMien %d: ",m);<br />
for(int i=0; i<n; i++)<br />
if(LabelLT[i]==m)<br />
fprintf(fp,"%4d",i);<br />
}<br />
}<br />
fclose(fp);<br />
return 1;<br />
}<br />
<br />
void GRAPH::GraphAlgorithm()<br />
{<br />
label=0;<br />
LabelLT = new int[n];<br />
for(int i=0; i<n; i++)<br />
LabelLT[i]=0;<br />
for(i=0; i<n; i++)<br />
if(LabelLT[i]==0)<br />
{<br />
label++;<br />
Visit(i);<br />
}<br />
}<br />
<br />
void GRAPH::Visit(int i)<br />
{<br />
LabelLT[i]=label;<br />
for(int j=0; j<n; j++)<br />
if(B[i][j]==1||B[j][i]==1)<br />
if(LabelLT[j]==0)<br />
Visit(j);<br />
}<br />
//***********************Graph.h**************************************
class GRAPH<br />
{<br />
private:<br />
int n;<br />
int label;<br />
int *LabelLT;<br />
unsigned char **B;<br />
public:<br />
int ReadData(char *FileName);<br />
const int WriteData(char *FileName);<br />
void GraphAlgorithm();<br />
void Visit(int i);<br />
<br />
};
Help me, make virtual method in my project!
<(-|-)> "To be or not to be"
|
|
|
|
|
I can see only one class in this code. And really dont understand your question.
|
|
|
|
|
what function do you want to be virtual!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and you
|
|
|
|
|
Hi
can u suggest me how to use a form view in tab control.I have done using dialogs in tab control for each tab item
Thanks,
Sireesha
|
|
|
|
|
Why you want to use form view instead of a dialog? What feature do you expected doing so?
nave
|
|
|
|
|
My application is like...
I need to get a vertical scroll bar when the size of the dialog increases.this should not increase the size of tab control
is there any way of doing that
|
|
|
|
|
is your dialog size increasing dynamically?
|
|
|
|
|
yes,the dialog size should be increased dynamically.
|
|
|
|
|
hey i will try getting a better solution in while u just make the vertical scroll property true
|
|
|
|
|
ok..I will suggest your a mehtod to this in dialog itself.
Specify the WS_VSROLL style fo the dislog that you added to tab
Create another dialog as the child of the dialog that you add to tab control.
you should put all the control in the second dialog.
So when use clicks on the scroll button, just move the innner dialog up or down
specify the WS_VSROLL style if you want to scroll dialog horizontally
use Setscrollinfo funtion in the begining to set the scroll bar sizes
nave
|
|
|
|
|
Hello Friends,
I also want to use Form view in a Tab Control.
My problem is we have developed the code using From view. And used menu bar for different screens.
Now we got a requirement form client tht they want Tab Controls instead of Menus..
I tried many things but its not working..
Can u tell me whether we can add form view in a Tab Control or not????
Megha
|
|
|
|
|
Just change the form view to CDialog add to the Tab control. If you too want scroll, just try the method I suggested in the previous post.
nave
|
|
|
|
|
thanks for the suggestion....
I have a doubt ..which dialog will be shown to the user initially --the dialog having the scroll bar or the child dialog having all the controls.
If it is the dialog having the vertical scroll bar then the controls will not be shown to the user until the sroll bar is clicked
|
|
|
|
|
you can set which tab should be the default dialog like setDefaultPage(0); if that is there in ur code
|
|
|
|
|
guys please answer my query..
really in need of help
|
|
|
|
|
i have not added a form view in a tab pane but i believe you can add it in the same manner as you add dialog
like
m_oPhoneBook.Create(IDD_PhoneBook);
just creat a private variable of the form view and in place of the dialog id put the form view id
|
|
|
|
|
megha_gharote wrote: guys please answer my query..
didn't I?
Read the thread from the begining...
nave
|
|
|
|
|
both dialog
assume
--outer dialog is the dialog having the the scroll bar style
--innner dialog have the controls
You can create the innner dialog from the OnInitdialog function of the outer dialog.
Also you must set the SetScrollinfo of the outerdialog from this funtion it self.
you must process the WM_HSCROLL and WM_VSCROLL messages and move the inner dialog from this functions.
nave
|
|
|
|
|
thank u guys....
i ll try this out
|
|
|
|
|
hi i have to display the files and folders of a drive in listview control. how to arrange it in tiles form?
Arise Awake Stop Not Till ur Goal is Reached.
|
|
|
|