|
shared memory
either a named pipe or a memory mapped file or a home grown mechanism
was that fast? i thought that was fast
mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them
|
|
|
|
|
I'm trying to put an edit control on a CListCtrl subitem. Placing the edit control in a "cell" is fairly straightforward, but I have some rectangle calculation/position problems.
1) To make the sub-item "cells" taller, I added a 1-pixel wide bitmap that's a little taller than the font used by the dialog box. The listcontrol also uses grid lines. When I calculate the edit control's rectangle (based on the subitem rectagle size), it comes up in the correct position, but it's two pixels too high. Without the imagelist, it is positioned 2 pixes too low.
To make it even more strange, this only happens on my machine at home (win98, IE 4.01). At work (NT4/SP6a, IE 5.0), it comes up in exactly the right place.
2) When I use the image list to make the rows taller, the header control row doesn't vertically fill its row. Can I (and how do I) correct this condition?
3) Is there a "proper" way to make the rows taller without using an imagelist? The reason I ask is because the user may select a larger font (Windows display properties) than I'm expecting.
4)Is there a definitive reference for using list controls (MSDN is severely lacking in available info).
Thanks in advance.
|
|
|
|
|
Check CListCtrl at www.codeguru.com. I used something once that came from there
Alberto Gattegno
Software Engineer
http://www.itginc.com
|
|
|
|
|
regarding point 3 ... i also use an image of the size i want to make the line taller
point 1 ... are the system display properties the same on all machines?
point 2 ... hmmmmmmm
point 4 ... there was a posting to code project recently that gave a pretty thorough dusting to the listview ctrls and the headers
mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them
|
|
|
|
|
please...
|
|
|
|
|
I get an error message when trying to insert the Microsoft animate control, after inserting the avi res I insert the activex then plug in oninitdialog()
m_animate.Open( IDR_AVI1 );
m_animate.Play(0,-1,-1);
I've also tried m_animate.Open("myavi.avi");
to no avail
cannot convert parameter 1 from 'const int'
to 'const char *'
cannot convert parameter 1 from 'const int' to 'const struct tagVARIANT &'
from the CAnimation wrapper class...
void Open(LPCTSTR bstrFilename);
void Play(const VARIANT& varRepeatCount, const VARIANT& varStartFrame, const VARIANT& varEndFrame);
Can someone please help.
|
|
|
|
|
Hi,
Try exactly this:
m_animate.Open("myavi.avi");
m_animate.Seek(0);
m_animate.Play(0,-1,-1);
Good Luck!
" I love water, but hate to drown! "
-- Masoud Samimi
Website: www.geocities.com/samimi73
|
|
|
|
|
thanks for the response but errors out
'Seek' : is not a member of 'CAnimation'
listed in animate.h
// Operations
public:
void SetAutoPlay(BOOL bNewValue);
BOOL GetAutoPlay();
void SetBackStyle(long nNewValue);
long GetBackStyle();
void SetCenter(BOOL bNewValue);
BOOL GetCenter();
void SetEnabled(BOOL bNewValue);
BOOL GetEnabled();
long GetHWnd();
void SetBackColor(unsigned long newValue);
unsigned long GetBackColor();
long GetOLEDropMode();
void SetOLEDropMode(long nNewValue);
void Close();
void Open(LPCTSTR bstrFilename);
void Play(const VARIANT& varRepeatCount, const VARIANT& varStartFrame, const VARIANT& varEndFrame);
void Stop();
void OLEDrag();
};
|
|
|
|
|
Hi,
Few questions first:
1- Are you using Appwizard to generate the starting code?
2- Are you putting the Animate Control from within the resource editor?
If all above are Yes, then see if you have the following lines in the stdafx.h file:
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>
#endif // _AFX_NO_AFXCMN_SUPPORT
If not, then copy and paste the above lines into the file and test compile again. Hope it solves it!
" I love water, but hate to drown! "
-- Masoud Samimi
Website: www.geocities.com/samimi73
|
|
|
|
|
Thanks a million that worked. But I can't get the avi to play. I get an error messagem_animate.Play(0,-1,-1);
I've also tried m_animate.Play("0,-1,-1);
to no avail
cannot convert parameter 1 from 'const int' to 'const struct tagVARIANT &'
from the CAnimation wrapper class...
void Play(const VARIANT& varRepeatCount, const VARIANT& varStartFrame, const VARIANT& varEndFrame);
any suggestions?
thanks
|
|
|
|
|
Hi,
Happy to know it worked!
I'd like to suggest that either you post to me some of your code lines or if you'd like I post to you a very small sample app!
As I asked in my last reply, please explain how are you using the Animate Ctrl? Where are you getting it from. For example I always put it on a dialog created with resource editor, from the Controls toolbar!
Let's fix this thing!
Cheers
" I love water, but hate to drown! "
-- Masoud Samimi
Website: www.geocities.com/samimi73
|
|
|
|
|
sorry about the non disclosure,
I'm putting it on a dialog created by right clicking on the dialog and "Inserting ActiveX control", and allowing the Microsoft Animate 6.0 control to add the wrapper class.
I'm emailing you the code so you can see the full project
Note it does not have the last changes you mentioned
thanks
|
|
|
|
|
Have your tried converting your Play parameters to Variants?
The following compiles and works for me:
//void Play(const VARIANT& varRepeatCount, const VARIANT& varStartFrame, const VARIANT& varEndFrame);
include <comdef.h>
//...
void CAnimDlg::OnOK() //generated by visual studio dialog app wizard
{
long p1 = 1;
long p2 = 0;
long p3 = -1;
_variant_t repeat(p1);
_variant_t startFrame(p2);
_variant_t endFrame(p3);
_bstr_t filename("C:\\winnt\\clock.avi"); //note that "open" wants a BString
m_animate.Open(filename);
m_animate.Play(repeat,startFrame,endFrame);
//m_animate is instance of control wrapper
//generated by classwizard
//would it be better to use
//MFC's CAnimateCtrl?
}
|
|
|
|
|
Hi everyone,
I want to make a website and to show tumbnails of images. I can't find any free component or source code to solve this problem. Does anybody to help me?
Best regards,
Leslie
|
|
|
|
|
Given the program:
#include <iostream>
using namespace std;
main()
{
cout << "Hello world" << endl;
}
modify it to produce the output
Initialize
Hello world
Clean up
Do not change main() in any way.
Alternately send answer to kul_ask@yahoo.com
|
|
|
|
|
This works on Borland CPPB4, but not VC - I think the output stream is gone in VC before the sole destuctor is called.
#include <iostream>
using namespace std;
class sole {
public:
sole() {
cout << "Initialize" << endl;
}
~sole() {
cout << "Clean up" << endl;
}
};
static sole solution;
int main(int argc, char* argv[])
{
cout << "Hello world" << endl;
return 0;
}
|
|
|
|
|
Can someone *PLEASE* tell me how to post code like this without having it all screwed up by the browser?
|
|
|
|
|
You need to take all angle brackets out and replace 'em with the HTML escapes.
IOW, instead of "<" enter "<", and instead of ">" enter ">". Same thing for ampersand, "&" instead of "&"
Some stuff will come through, like "cout << blah" but that may not work on all browsers. It's always safe to replace all angle brackets.
--Mike--
http://home.inreach.com/mdunn/
"That probably would've sounded more commanding if I wasn't wearing my yummy sushi pajamas."
--Buffy
|
|
|
|
|
Hi Erik!
What Michael said plus that if you wanted it to appear the same format you typed in the editor area, then you must use/start with <PRE> and then close the fragment with </PRE>.
Example:
----> This line is: <PRE>
Hi...----> Here is anything you write. Code fragments/lines
----> And this line is: </PRE>
Have Fun!
" I love water, but hate to drown! "
-- Masoud Samimi
Website: www.geocities.com/samimi73
|
|
|
|
|
Ahh.. exactly what I was looking for. Thanks Masoud.
|
|
|
|
|
Hi,everyone!
I have a big problem:my program can not exit completed.
below is the structure of my program:
WinMain(...)
{
Init(...);
RegisterClass(...);
CreateAndShowMainWindow(...);
// Main message loop
while(::GetMessage(...))
{
::TranslateMessage(...);
::DispatchMessage(...);
}
return msg.wParam;
}
CALLBACK MainWindowProc(...)
{
switch(message)
{
case WM_PAINT:
...;
break;
case WM_COMMAND:
...
break;
case ...:
...;
break;
case WM_LBUTTONUP:
::DialogBoxParam(...);
break;
case WM_DESTROY:
::PostQuitMessage(0);
break;
default:
::DefWndProc(...)
break;
}
return 0;
}
It's looks ok,Is not it?
but:
if I click the left mouse button,and the dialog box appeared,
and I press ESC(or ENTER),the dialog box disappeared and the
main window disappeared also,the program has completed,I do not
know why.
so I changed my code,the main message loop like blow:
// Main Message loop
BOOL bRet=FALSE;
for(;;)
{
for(;;)
{
if(!::GetMessage(&msg,NULL,0,0))
bRet=TRUE;
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
if(bRet)
return msg.wParam;
}
It works fine,the dialog box disappeared and the main window not
disappeared,but when I press Alt+F4 close the main window,I can
find the process in task manager,and I must press the "End Process"
button to end the process,It is said,my program can not exit completely.
I'm very puzzled!
Thanks for any suggestion.
|
|
|
|
|
ummmm
i dont see the dialog box message loop callback anywhere in your code ... once you kick off a dialog box it has to have its own callback for processing its own messages ... when that terminates you should find yourself in the main apps message loop again from where a terminate will work correctly
if your dialog box is modeless then you may have to check for its existance before closing your main app
other than that i dont see anything more from the code you have posted
mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them
|
|
|
|
|
yes,I have a Dialog callback procedure like below:
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
RQCDialog * pDialog;
switch (uMsg)
{
case WM_INITDIALOG:
...;
return TRUE;
case WM_COMMAND:
if(LOWORD(wParam) == IDOK)
{
::EndDialog(hwndDlg,1);
return TRUE;
}
if(LOWORD(wParam) == IDCANCEL)
{
::EndDialog(hwndDlg,0);
return TRUE;
}
return FALSE;
case WM_PAINT:
...;
return TRUE;
}
return FALSE;
}
and I call DialogBoxParam like use DialogProc as lpDialogFunc parameter.the problem still there.
|
|
|
|
|
Hi,
This link below talks about how to build a MFC Activex control from the
popular MFC doc / view sample Scribble.
http://www.microsoft.com/mind/0497/mfc.htm
I wanted to enhance this to support multiple documents at the same time..So
I could add methods like ActivateDoc(index) to the control which would then
activate the correct window..I have been trying to do this with MDI Frames
and MDI Child Frames but I manage to keep my control crashing...
Then I was trying to not have my Frame Window derive from CMDIChildWnd but
just CFrameWnd, but keep a list of pointers as I do OpenDocumentFile() each
time...But how do I activate the correct frame?
Can somebody help me with what I am doing?
Eventually what I want to do with this is build an ActiveX control that is a
Active Document container ( like the Web browser control ) to open Office
Documents. I need to use this in a Vb app and I would have used the Web
browser control except that I can only have one Office document open then. i
need to have multiple docs open.
I have a long way to go I think...Some help will help me get there faster
( if at all I am in the correct direction)
Thanks in advance
Rajesh
|
|
|
|
|
How can I prevent SetWindowText triggering EN_CHANGE?
Code:
____________________________________________________
CEdit m_Edit1;
void CMyDlg::UpdateEdit1
{
m_Edit1.SetWindowText("BLABLA"); //This triggers EN_CHANGE
}
void CMyDlg::OnChangeEdit1() // EN_CHANGE message handler
{
UpdateEdit1();
}
|
|
|
|