|
|
Thank you for the link.
~RaGE();
|
|
|
|
|
hello,
How can i modify style of child window,
i use
pChild->ModifyStyle(0,WS_THICKFRAME,SWP_NOMOVE | SWP_NOSIZE );
but the window haven't resizable border.
you know how to do this ?
thx in advance
|
|
|
|
|
does the window have WS_DLGFRAME style also? if it does, i think you will have to remove it. some window styles cannot be used together. also, for some styles you have to call SetWindowPos() after ModifyStyle(), to make them active (IIRC, ES_READONLY for edit controls ,etc)
|
|
|
|
|
thx Zed
my window doesn't have WS_DLGFRAME . I have a little problem with
SetWindowPos() :
pChild->SetWindowPos(NULL, 0, 0, 0, 0, SWP_FRAMECHANGED |<br />
SWP_NOMOVE | SWP_NOSIZE |<br />
SWP_NOZORDER);
after SetWindowPos my window has resizable borders, but i put the flags SWP_NOMOVE but my view move and it does not remain where it was.
So i would like to get border without call SetWindowPos it isn't posible ?
|
|
|
|
|
jeremysay wrote:
So i would like to get border without call SetWindowPosit isn't posible ?
i'm not sure
the problem is that SWP_FRAMECHANGED flags resulst in WM_NCCALCSIZE being sent to window, which forces the window to change its size. maybe you can add SWP_NOREDRAW flag which will defer repainting, and then call MoveWindow() to resize the window to its previous size. i'm not sure if this will work, but you can try
|
|
|
|
|
thx Zed for your help !
Zed wrote:
maybe you can add SWP_NOREDRAW flag which will defer repainting, and then call MoveWindow() to resize the window to its previous size. i'm not sure if this will work, but you can try
before call ModifyStyle ,i moved the view with ScrollWindow, there is a possibility to get "window scrolling" position (and not use GetScrollPos for scrollbar) ?
thx again Zed
|
|
|
|
|
GetScrollInfo(), but i'm not quiter sure what are you trying to achieve. can you post some more details?
|
|
|
|
|
in fact i scroll the view without use the scrollbar.
when i click in the view and move my mouse i do :
if (pMsg->message == WM_MOUSEMOVE) )
{
if (pMsg->wParam & VK_LBUTTON)
{
POINT Point = pMsg->pt;
long ScrollX = Point.x - m_Point.x;
long ScrollY = Point.y - m_Point.y;
ScrollWindow(-ScrollX,-ScrollY);
m_pPoint = Point
}
}
so i move my view and i don't know really its coordinates.
when i use :
pChild->SetWindowPos(NULL, 0, 0, 0, 0,SWP_FRAMECHANGED |
SWP_NOMOVE | SWP_NOSIZE |
SWP_NOZORDER);
my view loose its scrolling, so i want to know its coordinate before SetWindowPos .
Or get a way to put the sizable border without use SetWindowPos .
have you any idea ?
|
|
|
|
|
i'm not sure if i correctly understood the relationship between the view and pChild. is that the same window or are they parent-child?
if the view is scrolled only from your code, maybe you can accumulate ScrollX and ScrollY in every WM_MOUSEMOVE handler call and thus have the total ammount by which the view was scrolled, so you can use that (i'm just guessing here).
|
|
|
|
|
Zed wrote:
is that the same window or are they parent-child?
pChild is the parent child.
Zed wrote:
if the view is scrolled only from your code, maybe you can accumulate ScrollX and ScrollY in every WM_MOUSEMOVE handler call and thus have the total ammount by which the view was scrolled, so you can use that (i'm just guessing here).
OK thx, i'll go to do this, i hoped there was a "function" like GetScrollWindow"....but no.
thx Zed for you help!
|
|
|
|
|
Let's say I have a path to a file.
How to obtain an icon which is associated with ths file.
Any examples?
|
|
|
|
|
This little code snippet should help you on the way
SHFILEINFO shFileInfo;<br />
<br />
SHGetFileInfo(strFilename, FILE_ATTRIBUTE_NORMAL, &shFileInfo, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON);<br />
<br />
HICON hIcon = shFileInfo.hIcon;
|
|
|
|
|
Have a look at ExtractIconEx.
code snippet:
CString strIconFileName = strFile; //file name
if (!strIconFileName.IsEmpty ())
{
HICON hLargeIcon;
if (ExtractIconEx (strIconFileName, 0, &hLargeIcon, NULL, 1) == 1)
{
Debbie
|
|
|
|
|
Iam doing a MFC project for Asset Management .
The requirement is that when a user selects a file ,the application corresponding to that application should open and display /play the file ...
As an example ,if the file is c:\test.doc ,then MS word should be launched and should display the file ..
ANother exmaple is if the file is c:\media.rm ,then the real player should be opened and should play the file ..
How i do it in MFC ,or WIn 32 ???
|
|
|
|
|
check the ShellExecute() API
|
|
|
|
|
ShellExecute(...)
take a look at this function...
I think it's what you need...
Hope this helps.
|
|
|
|
|
Hi I hope you got a path to the file you want to be opened.
CString path;
Call
ShellExecute(NULL, "open",path, NULL, NULL, SW_SHOW);
Should work
|
|
|
|
|
Try to use the ShellExecute API command. See the MSDN libraray for details.
ShellExecute should do the job.
|
|
|
|
|
hi,
i've made a linked list that contains info that i want to read in another function. Wenn i make a new record and insert it into the linked list my programm crashes the next time it reads the list. it can read everything except for the new record.
i think it has something to do with the insertion of a wrong pointer. here's the code for inserting the new record:
<br />
Leverancier->LeverancierID = GetNewLeverancierID();<br />
NewLeverancier = new CLeverancierStruct;<br />
<br />
NewLeverancier = Leverancier;<br />
<br />
m_LeveranciersLijst.AddTail(NewLeverancier);<br />
the "Leverancier" variable contains the info that has to be inserted.
The next time i try to read the new record the programm just crashes on the point of retreving a CString it's value(for the struct).
[]D [] []D []
|
|
|
|
|
The problem is most likely that
NewLeverancier = Leverancier; does not copy the object pointed to by Leverancier into the object pointed to by NewLeverancier : instead, it just reassigns NewLeverancier to point to the previous object (and creates a memory leak BTW).
What you should do is define a copy constructor for the class Leverancier and NewLeverancier belong to and then create NewLeverancier like this:
NewLeverancier = new CLeverancierStruct(Leverancier);
Also, I strongly recommend you that you use some standard container like std::list instead of your own handcrafted container, it'll save you a lot of headaches.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
hi,
I think the problem is the assignment operator. If you have not coded an assignment operator for your CLeverancierStruct, the assignment does a shallow copy which will not copy the CString value(s).
Thus you will copy the pointer to a CString object, which doesnot know that it is used twice, producing a memory access failure or something like that.
Remember structs are classes which default to public for all members.
Have a nice day, and post me if this is the reason.
G. Steudtel
|
|
|
|
|
i think this is the reason my programm crashes, but how can i prevent it?
[]D [] []D []
|
|
|
|
|
How to embed a word document inside a form, what are the steps and what control i have to use??
Thanks inadvance
--Kamesh
|
|
|
|
|
Hi,
You got to make your application to be a container. for this the Document should be derived from a COleDocument instead of a CDocument. Create a project with the container option in the third step of the MFC class wizard. by default you'll get an insert object in the Edit Menu. use that and insert MS Word Document. your application would then host an MS-Word document.
|
|
|
|