|
I've got DirectX SDK Documentation, now I'll take a look, thanks a lot
Paolo
|
|
|
|
|
I'm writing a MFC MDI application, that has a dockable DialogBar containing a TreeCtrl to manage the application's project workspace. The problem is, I can't seem to initialize or otherwise interact with my tree control. I'm using VS 6.0 professional, I've designed the dialog in the resource editor and given it the id IDD_TREE_ORGANIZER. In addition I assigned the tree control a variable within the dialog class (m_tree). At first I tried to initialize the tree control in the dialog's OnCreate() function, but I just got a blank control. Then I read that the control should be initialized in a dialog's OnInitDialog function. I tried that as well, but again got a blank tree control (though the sample exersize I worked on did fine.. It was on a standard dialog though, and not a dockable dialog bar owned by the mainframe). Does anyone know of some sample code out there that shows how to create and interact with a tree control in a dockable dialog bar in an MFC MDI application that I can use for reference? I've been working on this for weeks and I'm pretty frustrated at this point
|
|
|
|
|
Consider OnInitUpdate().
Kuphryn
|
|
|
|
|
Can someone guide me on how to add text to a word document using "Bookmarks" from a word template "file.dot". I started with the visual C++ code below but I get lost trying to follow the Microsoft Word Objects schema, I just don't know how to tie it in like the VB example.
Visual Basic example code ___________________________________________________
Set wrdApp = CreateObject("Word.Application")
wrdApp.Documents.Open("c:\file.dot")
wrApp.ActiveDocumnet.Bookmarks("String One").Range.Text = "Vb sample"
________end of VB example____________________________________________________
Visual C++ __________________
void SystemAlign::CreateDoc(void)
{
CApplication oApp;
CBookmarks oBooks;
Cbookmark oBook;
CDocuments oDocs;
Cdocument oDoc;
CRange oRange;
COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),
vtTrue((short)TRUE),
vtFalse((short)FALSE);
// Create an instance of Word
if (!oApp.CreateDispatch("Word.Application"))
{
AfxMessageBox("Word failed to start!");
return;
}
oDocs = oApp.get_Documents();
oDoc = oDocs.Open("c:\My Documents\file.dot", vtOptional);
oBooks = oApp.get_ActiveDocument();
//oApp.get_ActiveDocument()
}
|
|
|
|
|
I am writing dll programs to do some file conversions for scientific data. Is there any way for me to do a dyn. memory allocation with out having constants in between the brackets but rather have declared variables.
Here is what I have now..
const int X = 100;
const int Y = 50;
long (*data)[Y];
int x,y;
if (!(pix_data = new long[X][Y])) { printf("Error allocating memory...\n"); return 1; }
I cant figure out a way to have an integer in X and Y that is declared internally (in main()) rather than having 100 or 50. When I place integers, error comes up saying " expected constant expression". Thus, I need not specify 100 or 50 but it looks to other varibles to figure that out. I have looked everywhere..
Any help is appreciated.
|
|
|
|
|
aero6dyn wrote:
const int X = 100;
const int Y = 50;
long (*data)[Y];
int x,y;
if (!(pix_data = new long[X][Y])) { printf("Error allocating memory...\n"); return 1; }
change to
const int X = 100;
const int Y = 50;
long (*data)[Y];
int x,y;
if (!(pix_data = new long[X * Y])) { printf("Error allocating memory...\n"); return 1; }
for the memory allocation and it should be fine.
Rob Manderson
I'm working on a version for Visual Lisp++
|
|
|
|
|
Thanks for the help. Rob..
Although, allocating isnt the issue I am having. Sorry, maybe I wasnt clear with my concern.I want to stay away from having to write:
const int X = 100;
const int Y = 50;
I have internal variables in main() that are assigned the values of 100 and 50. Thus, I would like to use them instead of having constants or define statements.. I want something like
int X = row_size;
int Y = column_size;
Ofcourse, that gives me an error saying "expected constant expression" at the line
long (*data)[Y];
This is because I am guessing c++ needs to know the size of the array before it starts compiling instead of looking in main().
I will have different files w/ different row_sizes and column_sizes so I cant have 100 or 50. So no input by the user specifying the # of rows or columns for each file I call is necessary.
Does that make any sense....
|
|
|
|
|
I am working on simple visual recognition program.
I have two bitmaps - background and background plus unknown object.
I can do convolution to filter out the unknown object, but I cannot figure out how to store the result for further processing.
So far I have same size bitmap with "empty" pixels.
Evetually I'll need to determine the shape of the object and I am looking for some kinda of trace algorithm to save this resulting image.
Thanks for your help Vaclav
|
|
|
|
|
I am trying to do this on my own at home, but have a serious need at work for the following DLL. I can do this in VB unfortunately WinRunner can not use VB DLL's since they are COM servers.
I wrote a simple dll that works but the this project is requires a message box.
I need a c++ dll that
a) I can launch a modalless message box with message passed.
b) keep on top
c) place on screen using x,y
d) close
Can anyone help me? I've never written a c++ dialog before.
thanks all
dhermann@ameriquest.net
|
|
|
|
|
I put a dll on
http://www.immenro.de/test/diadll.dll
you can download it there
the method is called
call_it(int x, int y, int cx, int cy, CString text)
|
|
|
|
|
Is there a way I can perform pointer arithmetic on an iterator? I have a function that goes through a long CString object first and stores the positions of the spaces in a vector<int> object. Going through the normal steps of iterating through each, I am able to get single words, and that works fine. However, the user will have to be able to specify how many words they want extracted at a time, which is held in m_nWordCount. right now I have something like this:
for(iter = intVec.begin(); iter != intVec.end(); )
{
nTemp = *iter;
iter++;
int nTemp2 = *iter;
nTemp++;
strWord = strTemp.Mid(nTemp ,nTemp2 - nTemp);
sWord.word = strWord.Trim();
if(sWord.word.GetLength() > 0)
::vecWords.push_back(sWord);
}
the problem line above is in bold (although it works for one word)
what I want to be able to do is this:
int nTemp2 = *(iter + m_nWordCount);
so that if the user specified 2 as the word count it would get whatever the value is at 2 spaces up.
(first position is 0, second is 5, third is 12)
this would allow them to get the string from position 0 to 12)
of course then I would also have to put my iterator incrementation back in the 'for' loop declaration
Thanks In Advance;)
If it's broken, I probably did it
bdiamond
|
|
|
|
|
Sorry, I seem to have found the answer, except for one problem. If I put this it works:
vector<int>::iterator tempIter = iter + 2;
but this doesn't:
vector<int>::iterator tempIter = iter + m_nWordCount;
I get this error when I try to use the variable instead of the hard-coded number:
error C2678: binary '+' : no operator found which takes a left-hand operand of type 'std::vector<_Ty>::iterator' (or there is no acceptable conversion)
If it's broken, I probably did it
bdiamond
|
|
|
|
|
duh! I was trying to use a CString variable
If it's broken, I probably did it
bdiamond
|
|
|
|
|
It sounds like when you are iterating through the string, you need to keep a count (N) of how many word breaks have been found so far. If that count is evenly divisible by m_nWordCount , add what has been found up to that point to the array and reset the count N. Make sense?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi everybody.
I have a simple question.
I have a CByteArray object and I need to convert it to a VARIANT, how could I do that.
|
|
|
|
|
Hi Roger,
Well... there is probably a nicer way, but if you're using MFC you could do:
VARIANT aVariant = COleVariant(myByteArray).Detach();
It's a bit lazy, but hey...
|
|
|
|
|
Hi everybody.
I have a simple question.
I have a CByteArray object and I need to convert it to a VARIANT, how could I do that.
|
|
|
|
|
Does anyone have experience of automating this (ActiveX or not) ?
I am thinking of producing a little DJing application (using MP3) and this has the best codec by far.
I've already looked at MSDN but information is a bit short there - getting current position etc..
Ta.
Elaine
The tigress is here
|
|
|
|
|
|
|
Has anyone created a class to use a Date/Time picker in a cell of a CListCtrl ?
Cheers,
Andy
|
|
|
|
|
Hello.
First, I'd like you to take a look at this post from another forum: http://www.codeguru.com/forum/showthread.php?s=4f35cbebe00b8299d7c4f45da97051c1&threadid=193904 (it explains the problem with CSerialPort -- this should also be brought to the attention of the authors of the class)
Anyway, I came across the exact same problem, except I was not using the class. I simply had WaitCommEvent and GetLastError() give me the same error 87 using this piece of code:
if (WaitCommEvent(hCom, &event, &obj))
{
cout << "Character Detected! ";
fsuccess = ReadFile (hCom, &data, 1, &transferred, &obj);
if (fsuccess)
cout << "Character Read! Here it is: " << data;
getch();
}
else
{
if (GetLastError() == ERROR_IO_PENDING)
cout << "Still waiting";
else
{
cout << "Fatal error: " << GetLastError();
getch();
exit(1);
}
}
As I said, the output for this program is Fatal error: 87. I should explain, this is after the COM1 port has been opened successfully for reading. Does anyone have any suggestions as to how to solve this? I will be very thankful if someone could help.
Thanks..
|
|
|
|
|
|
I am receiving a struct which has floats, int etc. I use ntohl etc on the ints and it all works fine. But on the floats, I am not sure what to use to get the bits in the right order. I had thought that ntohl will take any 32 bit number and convert it but I know when I use it, it does not convert it correctly. I tried to convert it myself one bit at a time and it is OK. Is there an easier way with a call already done?
Thanks in advance.
|
|
|
|
|
float floatVal =
unsigned long *longPtr = (unsigned long*)&floatVal;
*longPtr = ntohl(*longPtr);
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|