|
|
I enumerate the encoders registered on my computer(such as:Cinepak Codec by Radius, MJPEG Compressor,DivXMPEG-4 Fast-Motion...).Then how can I select one of them (Such as DivXFast-Motion) to compress the timeline using DirectShow filters?
Note:
These encoder have the same CLSID(CLSID_AVICo),only FccHandler and FridenlyName are different.How to select one of them?
Thanks!
|
|
|
|
|
Hello everyone !
I'm a begginer programmer in Visual C++ world.
and I would like to know if I can use the directX library with the MFC.
I think I have to use the C but I'm not sure....
Thank you.
Fx
|
|
|
|
|
You can use C++ and MFC with DirectX. CodeProject even has a section about DirectX:
http://www.codeproject.com/directx/
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
http://msdn.microsoft.com/library/devprods/vs6/visualc/vccore/_core_printing_in_rich_edit_controls.htm
or simply go to index of your Visual C++ help and select CRichEditCtrl and printing.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
Anybody could explain me how must I use SaveDC and RestoreDC functions? The problem is than after redrawing screen I am loosing memory (each 10 times it redraws I loose almost 5% memory)
I have this in a header file:
class CSaveDC {
public:
CSaveDC(CDC * dc) { sdc = dc; saved = dc->SaveDC(); }
virtual ~CSaveDC() { sdc->RestoreDC(saved); }
protected:
CDC * sdc;
int saved;
};
...inside OnDraw function...
{
CSaveDC sdc (pDC);
pDC->TextOut(25,-2,actual);
pDC->TextOut(25,-16,actual1);
pDC->SelectObject(CreateFont(15,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,
DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
18,"Times New Roman"));
...more TextOut...
pDC->SelectObject(CreatePen(PS_SOLID,2,RGB(255,0,0)));
..some drawing functions (MoveTo, LineTo, etc)....
pDC->SelectObject(CreatePen(PS_SOLID,2,RGB(255,96,0)));
..some drawing functions (MoveTo, LineTo, etc)...
pDC->SelectObject(CreatePen(PS_SOLID,2,RGB(0,255,255)));
..some drawing functions (MoveTo, LineTo, etc)....
pDC->SelectObject(CreatePen(PS_SOLID,2,RGB(255,0,255)));
..some drawing functions (MoveTo, LineTo, etc)....
pDC->SelectObject(CreatePen(PS_SOLID,2,RGB(0,255,0)));
..some drawing functions (MoveTo, LineTo, etc)....
}
...OnDraw follows
|
|
|
|
|
The objects you create using CreatePen/CreateFont etc. are not destroyed when you call RestoreDC. They are no longer selected into device context, but still exist. You should declare them as local MFC objects (like CPen), and ensure that CSaveDC d'tor is called before their destructors - so CSaveDC object must be declared *after* CPens.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
OK, that was the solution. I've changed to:
In OnDraw function...
CPen m_pPincelR, m_pPincelN, m_pPincelA, m_pPincelM, m_pPincelV;
CFont m_pLetraP, m_pLetraG;
m_pLetraG.CreateFont(16,0,0,0,FW_SEMIBOLD,FALSE,FALSE,FALSE,
DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
18,"Times New Roman");
m_pLetraP.CreateFont(15,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,
DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
18,"Times New Roman");
m_pPincelR.CreatePen(PS_SOLID,2,RGB(255,0,0));
m_pPincelN.CreatePen(PS_SOLID,2,RGB(255,96,0));
m_pPincelA.CreatePen(PS_SOLID,2,RGB(0,255,255));
m_pPincelM.CreatePen(PS_SOLID,2,RGB(255,0,255));
m_pPincelV.CreatePen(PS_SOLID,2,RGB(0,255,0));
{
CSaveDC sdc (pDC);
pDC->SelectObject(m_pLetraG);
pDC->TextOut(25,-2,actual);
pDC->SelectObject(m_pLetraP);
..more TextOut...
pDC->SelectObject(m_pPincelR);
...drawing functions...
pDC->SelectObject(m_pPincelN);
...drawing functions...
pDC->SelectObject(m_pPincelA);
...drawing functions...
pDC->SelectObject(m_pPincelM);
...drawing functions...
pDC->SelectObject(m_pPincelV);
...drawing functions...
}
... OnDraw follows...
And it works fine, I've tried to redraw many times and there is not memory consumption.
Thanks, so much.
|
|
|
|
|
Oh, a little problem. It works fine, but when I try to make a print preview I get a debug assertion failed, in the first SelectObject and TextOut function. If I try to print it without preview, it works.
Any idea?
|
|
|
|
|
LPSTR pszText;
CString sbuffer;
pszText = sbuffer;
how can I make the last line work? how to cast?
|
|
|
|
|
pszText = sbuffer.GetBuffer();
Now the pszText 'owns' the CString until you call ReleaseBuffer();. By the way, if you're doing this to turn a CString into a pszText for a function, the CString should cast to a char array by itself.
Christian
#include "std_disclaimer.h"
|
|
|
|
|
You can use the CString::LPCTSTR operator as follows
LPSTR pszText;
CString sbuffer;
//No copy takes place only pointer is returned
pszText = (LPCTSTR)sbuffer; //This returns a pointer to a Null terminated 'C' String
But beware if you change the CString there will be a reallocation of existing memory which will invalidate pszText
-----------------
Atul
#ifndef C
#define C damn_powerful
#endif
|
|
|
|
|
You can use the CString::LPCTSTR operator as follows
LPSTR pszText;
CString sbuffer;
//No copy takes place only pointer is returned
pszText = (LPCTSTR)sbuffer; //This returns a pointer to a Null terminated 'C' String
But beware if you change the CString there will be a reallocation of existing memory which will invalidate pszText
-----------------
Atul
#ifndef C
#define C damn_powerful
#endif
|
|
|
|
|
How can I be notified about any changes in Effects tab in Display Properties dialog box (e.g. checking/clearing "Animate Windows, Menus And Lists" check box)? I was under the impression that the system must send WM_SETTINGCHANGE message, but this doesn't happen in fact. Any ideas?
Thanks in advance.
Regards,
Nikolay
|
|
|
|
|
You could try monitoring their respective registry entries, I'm not sure what the keys would be but you could easily find out using a registry monitor (you can find a good one at www.sysinternals.com)
Have a good one,
-Ben
"Its funny when you stop doing things not because they’re wrong, but because you might get caught." - Unknown
|
|
|
|
|
Please, I need to know how I can do the allocation from CByteArray objects to CStatic objects and vice versa. My problem begins when I want to work with the image fields (of CByteArray style) of a DAO database and to show these fields through the CStatic members of dialog boxes.
If somebody knows other way to be able to operate with images in the database (insert, show and delete them) and in the dialog boxes, please tell me know.
Thanks a lot and I`m sorry for my English.
Jose Luis
|
|
|
|
|
if I want taht my CDialog will be exactly in the size of the screen.
and will be suitable for any computer(screen 17, 15 and every size)
|
|
|
|
|
Why ???
|
|
|
|
|
Because you only waited three hours for an answer.
1) Get the size of the screen by calling GetSystemMetrics() with the proper parameters.
2) Call the MoveWindow() function with the screen size.
|
|
|
|
|
|
CDialog::MapDialogRect
void MapDialogRect( LPRECT lpRect ) const;
Parameters
lpRect
Points to a RECT structure or CRect object that contains the dialog-box coordinates to be converted.
Remarks
Call to convert the dialog-box units of a rectangle to screen units. Dialog-box units are stated in terms of the current dialog-box base unit derived from the average width and height of characters in the font used for dialog-box text. One horizontal unit is one-fourth of the dialog-box base-width unit, and one vertical unit is one-eighth of the dialog-box base height unit.
The GetDialogBaseUnits Windows function returns size information for the system font, but you can specify a different font for each dialog box if you use the DS_SETFONT style in the resource-definition file. The MapDialogRect Windows function uses the appropriate font for this dialog box.
The MapDialogRect member function replaces the dialog-box units in lpRect with screen units (pixels) so that the rectangle can be used to create a dialog box or position a control within a box.
CDialog Overview | Class Members | Hierarchy Chart
------------------------------
Smaller Animals Software, Inc.
http://www.smalleranimals.com
|
|
|
|
|
m_imageList.Create(16,16, ILC_COLOR | ILC_MASK, 4, 0);
CBitmap bm;bm.LoadBitmap(IDB_BITMAP1);
m_imageList.Add(&bm, RGB(255, 255, 255)); // error here
bm.DeleteObject();
bm.LoadBitmap(IDB_BITMAP2);
m_imageList.Add(&bm, RGB(255, 255, 255)); // error here
the code above can't work. i copied this from a sample cod in the MSDN library but it just doesn't work! it gives the error:
"error C2064: term does not evaluate to a function"
did i forget to include some header file? it says in the MSDN that I have to include "windows.h", where do i include this file? or has it already been included?
|
|
|
|
|
Compiles fine on my PC. Are you *sure* this is exactly as it is on your screen, and that this is the error ? You wouldn't have got this far without windows.h - you get all that stuff for free if you used a wizard to create your project. If for some reason you've 'lost' the RGB macro, just pass 0xFFFFFF as the parameter, that's where you're headed in any case ( or maybe it's oxFFFFFF, in any case a value here should compile if the problem is something bizarre with RGB )
Christian
#include "std_disclaimer.h"
|
|
|
|
|
I want use my software to post data to the webpage.
In some search engines page there is a form for you to enter some keywords,and how can I submit these keywords use software and get the results?
thx a lot
|
|
|
|
|
Take a look at all the Internet and Http functions, like InternetOpen(), InternetReadFile() and a lot of others...
To post data you can use HttpSendRequest()
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|