|
Try this
#include <iostream>
int main(int argc, char* argv[])
{
_int64 a = 10;
std::cout << a << std::endl;
return 0;
}
in my system it is not working too.
Probably, the broble is in _int64,
not in yor function.
================================
Useful links
|
|
|
|
|
I need help. i must be such a retard i dont understand. I'm making an MFC SDI app, with a CButton object in the view. in OnInitialUpdate i am ::Create() ing the object fine, and ShowWindow() ing fine. The button appears... now how do i simply make an AfxMessageBox for when i click on this button!?
I've read about subclassing and it seems like it might be the way to go but i just *cant* get it to work. Any help would be appreciated...
|
|
|
|
|
You need to handle the ON_BN_CLICKED message generated by the button. The easiest way to do this is to use the class wizard to automagically generate the code for you. Then in your message handler do
AfxMessageBox(_T("Your Message here."));
- Nitron
"Those that say a task is impossible shouldn't interrupt the ones who are doing it." - Chinese Proverb
|
|
|
|
|
Thanks, but i'm not sure that helps. The classwizard doesn't offer any mapping abilities for my object...
In the View.h i have...
CButton myButton;
then in the cpp i have
myButton.Create("Test", WS_CHILD, CRect(0,0,50,50), <br />
AfxGetMainWnd(), WM_USER+1);<br />
myButton.ShowWindow(SW_SHOW);
If i go to the classwizard, under the "Message Maps" tab, i select the View as the Class Name, but then what? Theres no reference to my button anywhere.
Thanks for the help though mate, i appreciate it. any more thoughts?
-BigSteiny
|
|
|
|
|
Bigsteiny wrote:
If i go to the classwizard, under the "Message Maps" tab, i select the View as the Class Name, but then what? Theres no reference to my button anywhere.
Nor should there be. ClassWizard is obviously not going to know about a control that is created at run-time.
What is your view based on?
|
|
|
|
|
Based on? Um. It just used the AppWizard and made an SDI application.
The control is created at run time, but it's declared at compile time... not sure if this makes a difference though...
Thanks.
-Az.;)
|
|
|
|
|
Bigsteiny wrote:
Based on? Um. It just used the AppWizard and made an SDI application.
Yes, but what base class was the view derived from? If you did not change any of the defaults, it's probably going to be CView. Other types are CFormView, CListView, CEditView, CHtmlView, CRichEditView, CScrollView, and CTreeView.
Besides the list control, are you going to want other controls displayed on the view?
|
|
|
|
|
The best way to do this is to create a class derived from CButton.
class CMyButton : public CButton
{
// class members go here
}; // end class
And then in your MFC application you declare a member variable:
CMyButton *pButton;
Then you procceed by creating the button and showing it.
To handle messages simply go to classwizard and select CMyButton. You will be able to see the list of messages that your class can handle.
// Afterall I realized that even my comment lines have bugs
|
|
|
|
|
Arrggh! No good i'm afraid.
I made a class called MyButton which inherits from CButton fine. made it ok. Create-ed it fine, ShowWindow-ed fine.... i even got the class wizard to apparently map the OnLButtonDown.. but when i click on it - it does nothing. The code never executes?! Help!
<br />
BEGIN_MESSAGE_MAP(MyButton, CButton)<br />
ON_WM_LBUTTONDOWN()<br />
END_MESSAGE_MAP()<br />
<br />
protected:<br />
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);<br />
<br />
void MyButton::OnLButtonDown(UINT nFlags, CPoint point) <br />
{<br />
AfxMessageBox("You Clicked LButton on MyButton class");<br />
<br />
CButton::OnLButtonDown(nFlags, point);<br />
}<br />
That's basically whats been added... but it doesn't work. Any thoughts? Thanks for the help.
|
|
|
|
|
Because you are creating the control using Create() , you are going to have to add the MESSAGE_MAP entries manually to get this to work.
// in header file
afx_msg void OnMyButton()
in the MESSAGE_MAP
ON_BN_CLICKED(ID_OF_CREATED_BUTTON, OnMyButton)
void CYourClass::OnMyButton()
{
AfxMessageBox("I hope this works!");
}
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
I must be doing something wrong but i don't know what. So here's all of it..
Thanks for the patience.
<br />
<br />
#include "MyButton.h"<br />
class CTstButtonView : public CView<br />
{<br />
protected:
CTstButtonView();<br />
DECLARE_DYNCREATE(CTstButtonView)<br />
<br />
public:<br />
CTstButtonDoc* GetDocument();<br />
MyButton* myButton;<br />
public:<br />
virtual void OnDraw(CDC* pDC);
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);<br />
virtual void OnInitialUpdate();<br />
<br />
public:<br />
virtual ~CTstButtonView();<br />
#ifdef _DEBUG<br />
virtual void AssertValid() const;<br />
virtual void Dump(CDumpContext& dc) const;<br />
#endif<br />
<br />
protected:<br />
<br />
protected:<br />
DECLARE_MESSAGE_MAP()<br />
};<br />
<br />
<br />
void CTstButtonView::OnInitialUpdate() <br />
{<br />
CView::OnInitialUpdate();<br />
<br />
myButton = new MyButton;<br />
myButton->Create("Test", WS_CHILD, CRect(0,0,50,50), AfxGetMainWnd(), WM_USER+1);<br />
myButton->ShowWindow(SW_SHOW);<br />
}<br />
<br />
class MyButton : public CButton<br />
{<br />
public:<br />
MyButton();<br />
<br />
<br />
public:<br />
virtual ~MyButton();<br />
<br />
protected:<br />
afx_msg void OnMyButton();<br />
<br />
DECLARE_MESSAGE_MAP()<br />
};<br />
<br />
<br />
<br />
MyButton::MyButton()<br />
{<br />
}<br />
<br />
MyButton::~MyButton()<br />
{<br />
}<br />
<br />
<br />
BEGIN_MESSAGE_MAP(MyButton, CButton)<br />
ON_BN_CLICKED(WM_USER+1, OnMyButton)<br />
END_MESSAGE_MAP()<br />
<br />
void MyButton::OnMyButton()<br />
{<br />
AfxMessageBox("My Function!");<br />
}<br />
<br />
|
|
|
|
|
You dont need to inherit from CButton to handle the click event of your button
All you have to do is to add a button notification handler in the view class for the id of your button, and ensure that the button's id is unique in order not to conflict with other controls. This code should explain it:
class CTstButtonView : public CView
{
.
.
CButton m_btn;
afx_msg void MyButtonHandler();
.
.
};
BEGIN_MESSAGE_MAP(CTstButtonView , CView)
.
.
ON_BN_CLICKED(ID_MYBUTTON, MyButtonHandler)
.
.
END_MESSAGE_MAP()
void CTstButtonView::OnInitialUpdate()
{
CView::OnInitialUpdate();
if(!m_btn.GetSafeHwnd())
m_btn.Create("TEST", WS_CHILD|WS_VISIBLE, CRect(0,0, 200, 100), this, ID_MYBUTTON);
}
void MyButtonHandler()
{
AfxMessageBox("My Function!");
}
note that in your code you made the parent window of the button is the main window which is the CMainFrame class, if you want it this way you may need to move the handler function and handler message map to the CMainFrame instead of the CView
|
|
|
|
|
Another note concerning the code of you derived CButton class. The code did not work becuase the BN_CLICKED message is not sent to the button, this message is sent to the parent of the button. Therefore the message is not sent to the button in the first place.
|
|
|
|
|
Right, i'd actually alread tried that method too... and it didn't work. I tried swapping the mapping from my custom class, to the view and still didn't work. The problem was...
<br />
m_btn.Create("TEST", WS_CHILD|WS_VISIBLE, CRect(0,0, 200, 100), this, <br />
ID_MYBUTTON)<br />
<br />
as opposed to my<br />
<br />
m_btn.Create("TEST", WS_CHILD|WS_VISIBLE, CRect(0,0, 200, 100), AfxGetMainWnd(), <br />
ID_MYBUTTON)<br />
should have seen this.
Thanks for the help everyone.
|
|
|
|
|
We do a lot of user interface software, often small applications.
In order to speed up design is it possible to add to the palette in the dialgoue editor ? The one where the edit box, list control etc. appear ?
Either in VC++6.0 or VS.NET.
Thanks.
Elaine
The tigress is here
|
|
|
|
|
Well, not to the dialog editor.
But try to use the component gallery.
G. Steudtel
|
|
|
|
|
Hi,
DLL's OCX's... must be registered with that regsvr32 ( if they are COM servers...), but the TLB files, can they ( or should they) be registered as well ?, I think not, but I'm not 100 % sure, what is the right answer ?
Thanks in advance, greetings
Braulio
|
|
|
|
|
tlb type libraries describe the entry points into the ocx dll's
they are only necessary when you are importing them into your source code so that you can call the ocx functions. you can not / do not register them with regsvr32.
regsvr32 registers your COM CLSID's with the OLE / COM subsystem so that it can create the appropriate class factories / classes at runtime.
hope this is reasonable clear explanation
|
|
|
|
|
I want to query the last modified time on a file before I download it from the Internet. Unfortunately I'm connected via an MS proxy server which requires the domain name as well as username and password. I've successfully got a response code by using the following WinINet functions:
InternetOpen()<br />
InternetConnect()<br />
HttpOpenRequest()<br />
HttpSendRequest()<br />
HttpQueryInfo()
where HttpQueryInfo() looks something like this:
HttpQueryInfo(hResourceHandle, HTTP_QUERY_FLAG_NUMBER |
HTTP_QUERY_STATUS_CODE, &dwStatus, &dwStatusSize, NULL))
Note that I set my internet options for using the proxy using the handle returned from HttpOpenRequest().
HttpSendRequest() returned a response code of 200 - OK.
So now I want to get the last modified details, so I change the HttpQueryInfo() call to something like this:
char szLastModified[32];
DWORD dwLengthLastModified = sizeof(szLastModified);
HttpQueryInfo(hResourceHandle, HTTP_QUERY_LAST_MODIFIED,
szLastModified, &dwLengthLastModified, NULL))
Unfortunately, it fails and GetLastError() reports an error code of 12150 - "requested header could not be located".
Can anyone spot what I'm doing wrong?
"The folly of man is that he dreams of what he can never achieve rather than dream of what he can."
"If you think education is expensive, try ignorance."
|
|
|
|
|
Hi,
I am still learning programming in C. I have tried to write down a piece of code and i get many errors.
Could someone help me to correct those? Hope i am not asking too much
Thx
/*******************************************************************************************
this code shows the Trl_values calculation. it is going to help determining the histogram
********************************************************************************************/
#include <stdio.h>
#include <math.h>
double tailing = NULL;
double trl_values = NULL;
double y_int_1 = NULL;
double rest = NULL;
double leading = NULL;
double Duration;
const double slice_level = 53.9998;
double histogram_ram = NULL;
double i_index;
double Trl_values;
void trl_calculation(int amount, unsigned char*pData)
{
for (int i=1; i <= amount; i++)
{
if ((y_int_1) - slice_level <0) & (y_int - slice_level > 0)
tailing = 1 - (y_int-slice_level)/(y_int-y_int_1);
Trl_values(length(Trl_values)+1) = tailing + leading + rest;
leading = 1 - tailing;
rest = 0;
else if ((y_int_1-slice_level>0)&(y_int-slice_level<0))
tailing = 1 - (y_int-slice_level)/(y_int-y_int_1);
Trl_values(length(Trl_values)+1) = tailing + leading + rest;
leading = 1 - tailing;
rest = 0;
else
rest = rest + 1;
y_int_1 = y_int;
}
}
void histogram(int amount, unsigned char*pData)
{
for (int i=1; i <= amount; i++)
{
i_index=round(Trl_values(i)/Duration)+1;
histogram_ram(i_index)=histogram_ram(i_index)+1;
}
}
P.S: How do i express the "round" function in C?
F.K
|
|
|
|
|
I don't know if this will help, but i was tying to rewrite into C code, my program in Matlab.
I used the Matlab compiler to run my code in C, but it does not generate a proper C code as i want.
That'i is why at some points the syntax may look weird.
F.K
|
|
|
|
|
Well, it helps to understand the queer syntax.
First of all, if you want to initialize a variable, use 0(zero) instaed of NULL. NULL should only be used for pointers, meaning not available memory. It may or may not coincide with being zero.
A variable is not a function. in your sample trl_value was used as a function trl_value(length(.....)), this function was then given a value, and never stored. Two errors at once.
A function cannot assigned a value, it is returning one! And a variable cannot be a function.
You may of course have a function with the same name like a variable, but this is bad manners, and not shown in your sample code.
So I think the best is, you just make clear what the code should perform. and write a plain simple text(file) in your local language, and try to translate this one into C.
Rounding in C/C++:
One of many methods
<br />
VariableRounded = (long)(VariableToBeRounded+0.5);<br />
Works mathematically correct only for positive values.
So try to use the floor or ceiling finctions instead. Still issues with signs.
G. Steudtel
|
|
|
|
|
Be more specific. What errors are you talking about (i.e., compiler, linker, run-time)?
There are different ways of rounding a number, depending on the intent. You can use ceil(), floor(), or you can add 0.5 to the number and cast away the exponent, leaving just the mantissa.
|
|
|
|
|
2nd question first...
double d,e = 5.731;
d = floor (e); // = 5
d = ceil (e); // = 6
d = fmod (e, 1.0); // = 0.731
d = fmod (e, 2.0); // = 1.731
As for the 1st question:
a) You don't give us the error messages. If there are loads, the first few will do.
Chances are, error 10-99 are follow ons from errors 1 - 9.
b) You have two '#include's at the beginning, but you don't give the preprocessor
and filenames to actually include...
c) There are a LOT of file scope (global) variables here. Not the best programming
example. If it works, then OK, but don't take too many tips from it.
Iain.
|
|
|
|
|
I have a dialog with 6 spin controls on it. The controls are populated with a random number in the OnInitDialog method. Once one of the spin controls is increased I would like to turn off the other 5 so that they can't be changed. If the original control was then later decreased then I need to turn on the all of the controls again so that they may be changed.
I have tried to do this the VScroll message handler but it seems that the buddy window is updated before or independant of this message handler.
Thanks for the help,
-Eric
|
|
|
|
|